import { ExtensionBase } from './ExtensionBase'; /** * Base class for any mode extension for {@link RenderManager}. * Mode extensions can store and restore scene state. In other words define additional mode for viewer for scene representation. * For example, mode extension can colorize any elements in scene and store this scene state. */ export declare abstract class ModeExtensionBase extends ExtensionBase { /**Extension type (ext, mode, control).*/ readonly type: string; /**Mode description or name.*/ readonly modeDesc: string; /**Show or hide viewer tooltip feature if {@link enableTooltip} == true.*/ showTooltip: boolean; /**Enable or disable viewer tooltip feature for this extension.*/ enableTooltip: boolean; /**Mode icon name. Icon name will be used by viewer Toolbar UI component for displaying mode buttons.*/ readonly modeIcon: string; protected els: number[]; protected res: Array; protected details: any | undefined; private restoreTooltipStateHandler; private saveTooltipStateHandler; elementsRes: Map; /** * Render function for rendering tooltip content when {@link enableTooltip} == true. * @param container - Parent DOM container. */ tooltipRender(container: HTMLElement): void; /** * Render function for rendering icon content for Toolbar component. * @param container - Parent DOM container. */ modeIconRender(container: HTMLElement): void; /** * Sets external hook handler for restoring extension tooltip state in the local storage. * @param handler - handler hook function. */ setRestoreTooltipStateHandler(handler: Function): this; /** * Sets external hook handler for storing extension tooltip state in the local storage. * @param handler - handler hook function. */ setSaveTooltipStateHandler(handler: Function): this; /** * Set data to resource array and details array for elements list. * @param elNums - Elements self Ids. * @param resourceArray - Resource data array. * @param details -Details data array. * @param forceClearData - force clear data after applying by extension. */ setData(elNums: number[], resourceArray: T[], details: any | undefined, forceClearData?: boolean): void; /** * Clear resource array, details array and elements list. */ clearData(): void; /** * @param viewerName - Owner viewer name. * @param modeDesc - Mode description or name. * @param modeIcon - Mode icon name. Icon name will be used by viewer Toolbar UI component for displaying mode buttons. * @protected */ protected constructor(viewerName: string, modeDesc: string, modeIcon: string); /** * Setup viewer state and modify elements by this state. * Should be overridden by each mode extension. */ abstract setup(): void; /** * Hook when extension is activated (selected as current mode). * Called by ExtensionManager.selectControllerExtension(). * @group Hooks */ abstract selected(): void; /** * Hook when extension is deactivated. * Called by ExtensionManager.selectControllerExtension() * @group Hooks */ abstract unselected(): void; /** * Save {@link enableTooltip} state to local storage. */ saveTooltipState(): void; /** * Restore {@link enableTooltip} state from local storage. */ restoreTooltipState(): void; }