import {Color3, Observable} from "@babylonjs/core"; import {DiagramEntity} from "../diagram/diagramEntity"; import {AppConfigType} from "../util/appConfigType"; export enum DiagramListingEventType { GET, ADD, REMOVE, MODIFY } export type DiagramListingEvent = { type: DiagramListingEventType; listing: DiagramListing; } export type DiagramListing = { type: DiagramListingEvent; id: string; name: string; description?: string; sharekey?: string; } export interface IPersistenceManager { diagramListingObserver: Observable; sync(); addDiagram(diagram: DiagramListing); getNewRelicData(): Promise; setNewRelicData(data: any): Promise; removeDiagram(diagram: DiagramListing); add(mesh: DiagramEntity); remove(id: string); modify(mesh: DiagramEntity); initialize(); setConfig(config: AppConfigType); getConfig(): Promise; modifyDiagram(diagram: DiagramListing); updateObserver: Observable; configObserver: Observable; changeColor(oldColor: Color3, newColor: Color3); setCurrentDiagram(diagram: DiagramListing); }