import { RenderManager } from '../render/RenderManager'; /** * Base class for any extension for render manager. */ export declare abstract class ExtensionBase extends EventTarget { get [Symbol.toStringTag](): string; /**Owner viewer name. */ readonly viewerName: string; /**Any extension data which can be stored in browser local storage and restored after (any extension settings, buttons state and so one). *State will be saved in local storage with 'tangl-ext-extensionName' key. */ state: any; /**Extension type (ext, mode, control).*/ readonly type: string; /**Is extension need to hide toolbar or not.*/ hideToolbar: boolean; /**Get unique extension name. */ static getName: () => string; /**Get unique extension name. */ getName: () => string; /** Optional icon for placing on HelpToolbar. */ readonly helpIcon: string | undefined; /** Optional description for placing on HelpToolbar. */ readonly helpDesc: string | undefined; private restoreStateHandler; private saveStateHandler; /** * Render function for rendering dedicated toolbar content. * @param container - Parent DOM container. * @group Hooks */ dedicatedToolbarRender(container: HTMLElement): void; /** * Render function for rendering shared toolbar content. * @param container - Parent DOM container. * @group Hooks */ sharedToolbarRender(container: HTMLElement): void; /** * Render function for rendering additional UI above viewer canvas. * @param container - Parent DOM container. * @group Hooks */ uiRender(container: HTMLElement): void; ui: string; static getHelpDialogName(): string; isShowHelpButton(): boolean; /** * @param viewerName - Owner viewer name. * @param helpDesc - Optional description for help button. * @param helpIcon - Optional icon for help button. * @protected */ protected constructor(viewerName: string, helpDesc?: string, helpIcon?: string); /** * Get current {@link RenderManager} instance. */ getRenderManager(): RenderManager; /** * Sets external hook handler for restoring extension state in the local storage. * @param handler - handler hook function. */ setRestoreStateHandler(handler: (stateName: string, state: any) => Promise): this; /** * Sets external hook handler for storing extension state in the local storage. * @param handler - handler hook function. */ setSaveStateHandler(handler: (stateName: string, state: any) => void): this; /** * Save extension state in the local storage. */ saveState(): Promise; /** * Restore extension state from the local storage. */ restoreState(): Promise; /** * Hook when current extension command is changed or finished. * Called by ExtensionManager.setCurrentCommandExtension(). * @group Hooks */ commandChanged(newCommand: ExtensionBase | undefined): void; /** * Hook when extension is added to ExtensionManager. * Called by ExtensionManager.addExtension(). * @group Hooks */ abstract added(): void; /** * Hook when extension is deleted from ExtensionManager. * Called by ExtensionManager.clear(). * @group Hooks */ abstract deleted(): void; }