import { IUiConfigContainer, UiConfigContainer } from 'uiconfig.js'; import { Class, IDisposable, IJSONSerializable } from 'ts-browser-helpers'; import { SerializationMetaType } from '../utils'; import { ISerializedConfig, ThreeViewer } from './ThreeViewer'; /** * Interface for Viewer Plugins * @category Viewer */ export interface IViewerPlugin extends IUiConfigContainer, Partial>, IDisposable, Partial { constructor: { PluginType: string; PluginTags?: string[]; OldPluginType?: string; }; dependencies?: Class>[]; onAdded(viewer: TViewer): IsSync extends false ? Promise : void; onRemove(viewer: TViewer): IsSync extends false ? Promise : void; dirty?: boolean; serializeWithViewer?: boolean | undefined; storeState?: (prefix?: string, storage?: Storage, data?: any) => void; loadState?: (prefix?: string, storage?: Storage) => Promise; } export interface IViewerPluginSync extends IViewerPlugin { onAdded(viewer: TViewer): void; onRemove(viewer: TViewer): void; dependencies?: Class[]; } export interface IViewerPluginAsync extends IViewerPlugin { onAdded(viewer: TViewer): Promise; onRemove(viewer: TViewer): Promise; dependencies?: Class[]; } //# sourceMappingURL=../src/viewer/IViewerPlugin.d.ts.map