UNPKG

threepipe

Version:

A modern 3D viewer framework built on top of three.js, written in TypeScript, designed to make creating high-quality, modular, and extensible 3D experiences on the web simple and enjoyable.

64 lines 2.98 kB
import type { ISerializedConfig, IViewerEvent, ThreeViewer } from './ThreeViewer'; import { IViewerEventTypes } from './ThreeViewer'; import { EventDispatcher } from 'three'; import { PartialRecord, SerializationMetaType } from '../utils'; import { IViewerPlugin, IViewerPluginAsync } from './IViewerPlugin'; import { UiObjectConfig } from 'uiconfig.js'; export interface AViewerPluginEventMap { serialize: { data: ISerializedConfig; }; deserialize: { data: ISerializedConfig; meta?: SerializationMetaType; }; } /** * Base Class for Viewer Plugins * @category Viewer */ export declare abstract class AViewerPlugin<TE extends AViewerPluginEventMap = AViewerPluginEventMap, TViewer extends ThreeViewer = ThreeViewer, IsSync extends boolean = boolean> extends EventDispatcher<TE & AViewerPluginEventMap> implements IViewerPlugin<TViewer, IsSync> { ['constructor']: typeof AViewerPlugin; static readonly PluginType: string; static readonly OldPluginType?: string; protected _dirty: boolean; uiConfig?: UiObjectConfig; protected _viewer?: TViewer; abstract enabled: boolean; abstract onAdded(viewer: TViewer): IsSync extends false ? Promise<void> : void; abstract onRemove(viewer: TViewer): IsSync extends false ? Promise<void> : void; dispose(): void; toJSON(meta?: SerializationMetaType): ISerializedConfig; fromJSON(data: ISerializedConfig, meta?: SerializationMetaType): this | null | Promise<this | null>; protected _storeKey(prefix?: string): string; exportState(): ISerializedConfig | Record<string, never>; importState(state: any): Promise<void>; protected _viewerListeners: PartialRecord<IViewerEventTypes, (e: IViewerEvent) => void>; protected _onViewerEvent: (e: IViewerEvent) => IViewerEvent; private _disabledBy; disable: (key: any, setDirty?: boolean) => void; enable: (key: any, setDirty?: boolean) => void; isDisabled: () => boolean; setDirty?(...args: any[]): any; get dirty(): boolean; set dirty(value: boolean); } /** * Base Class for Sync Viewer Plugins * @category Viewer */ export declare abstract class AViewerPluginSync<TE extends AViewerPluginEventMap = AViewerPluginEventMap, TViewer extends ThreeViewer = ThreeViewer> extends AViewerPlugin<TE, TViewer, true> { ['constructor']: (typeof AViewerPluginSync) & (typeof AViewerPlugin); onAdded(viewer: TViewer): void; onRemove(viewer: TViewer): void; } /** * Base Class for Async Viewer Plugins * @category Viewer */ export declare abstract class AViewerPluginAsync<TE extends AViewerPluginEventMap = AViewerPluginEventMap, TViewer extends ThreeViewer = ThreeViewer> extends AViewerPlugin<TE, TViewer, false> implements IViewerPluginAsync<TViewer> { ['constructor']: (typeof AViewerPluginAsync) & (typeof AViewerPlugin); onAdded(viewer: TViewer): Promise<void>; onRemove(viewer: TViewer): Promise<void>; } //# sourceMappingURL=AViewerPlugin.d.ts.map