import { SceneCallbacks } from '../scene/SceneCallbacks'; import { MetaEvents } from './MetaEvents'; import { ElementData } from '../scene/ElementData'; import { PropTools } from './PropTools.ts'; /** * Model tree node status. */ export declare enum ModelStatus { /** * Model tree node created. */ Created = 0, /** * Model tree node enqueued. */ Enqueued = 1, /** * Model tree node processing. * */ Processing = 2, /** * Model tree node completed. */ Completed = 3, /** * Model tree node with error. */ Error = 4, /** * Model tree node unloaded. */ Unloaded = 5 } /** * Model item common information. */ export declare class MetaModelItem { /**Model Version. */ version: number; /**Model version GUID. */ guid: string; /**Model GUID. */ modelGuid?: string; /**Model name. */ name: string; /**Model index. */ geomNum: number; /**Model status. */ status: ModelStatus; } /** * Model common information. */ export declare class MetaModel { constructor(guid: string, geomNum: number, name: string); /**Model Version. */ version: number; /**Model version GUID. */ guid: string; /**Model name. */ name: string; /**Model index. */ geomNum: number; /**Map for mapping elements GUIDs to numbers. */ guidToNums: Map; /**Map for mapping elements numbers to GUIDs. */ numsToGuids: Map; } /** * Base class for model tree nodes. */ export declare class NodeBase { key: string; name: string; count: number | undefined; level: number; isLeaf?: boolean; children?: NodeBase[] | undefined; geomNum?: number; } /** * Model tree node. */ export declare class ModelNode extends NodeBase { guid: string; geomNum: number; children: GroupNode[] | undefined; status: ModelStatus; state: { isHidden?: boolean | undefined; color?: string | undefined; }; isWrongOrigin: boolean; wrongOriginDistance: number; } /** * Element tree node. */ export declare class ElementNode extends NodeBase { guid: string; category: string; type: string; id: string; elIdx?: number | undefined; elNum: number; geomNum: number; isRef: boolean; } /** * Group tree node. */ export declare class GroupNode extends NodeBase { state: { isHidden?: boolean | undefined; color?: number | undefined; }; children: Array; } /** * Loads model`s metadata (properties) from buckets and provides functions to manage elements properties. */ export declare class MetaManager extends EventTarget { readonly tag = "MetaManager"; /**Tools for batch fetching properties for list of elements or all elements. */ propTools: PropTools; /**Loaded model GUIDs.*/ models: Map; /**Unique instance id. */ instanceId: string; /**Tree with metadata nodes structure. */ metaTree: ModelNode[]; /**Fetch model data from shared endpoints. */ isShared: boolean; /**Shared link id. */ linkId?: string; /** @deprecated Cache is always on. */ useCache: boolean; /**Is if the ID of this Meta Manager matches the one stored in the IndexedDb "meta" table. */ isIdbInstanceIncorrect: boolean; /** Maximum number of models that will be saved to the browser cache for faster later opening. */ maxModelsCache: number; private server; private serverPath; private cacheServer; private cacheServerPath; private token; private loadedCallback; private changedCallback; private errorCallback; private metaWorker; private metaTreeWorker; elementDatas: Map; private fetchMetaAc; ax: import('axios').AxiosInstance; private processRetry; /** * Set access token for manager`s requests. * @param token - access token. */ setToken(token: string): MetaManager; /** * Get access token for manager`s requests. */ getToken(): string; constructor(); /** * Set server path to REST point for data loading. * @param path - path to server REST point. */ setServerPath(path?: string): MetaManager; /** * Get server path to REST point for data loading. */ getServerPath(): string; /** * Set server path to REST point for cache data loading. * @param path - path to server REST point. */ setCacheServerPath(path?: string): MetaManager; /** * Set server path to REST point for cache data loading. */ getCacheServerPath(): string; /** * Set server URI for data loading. * @param server - server URI. * @param cacheServer - cache server URI */ setServer(server?: string, cacheServer?: string): MetaManager; /** * Get cache server URI for data loading. */ getCacheServer(): string; /** * Set callback function for event when each model is loaded. * @group Callbacks * @param loadedCallback - function with LoadedCallbackFunction signature. */ onLoaded(loadedCallback: SceneCallbacks.LoadedCallbackFunction): MetaManager; /** * Set a callback for an event when a model will not be loaded due to an error. * @group Callbacks * @param errorCallback - function with ErrorCallbackFunction signature. */ onError(errorCallback: SceneCallbacks.ErrorCallbackFunction): MetaManager; /** * Set callback function for event when models list are changed. * @group Callbacks * @param changedCallback - function with plain Function signature. */ onChanged(changedCallback: Function): MetaManager; /** * Clear all nodes in model tree. */ clearAllNodes(): void; /** * Clear node in model tree. */ clearModelNode(guid: string, status?: ModelStatus): void; /** * Add new model nodes in model tree. * @param versionIds - model version GUIDS and names list. */ addModelNodes(versionIds: MetaModelItem[]): void; /** * Set element datas map to MetaManager. * @param elementDatas - element datas map. */ setElementDatas(elementDatas: Map): void; /** * Set meta tree to model node with specified version GUID. * @param versionId - model version GUID. * @param status - new status for model node. * @param progress - new progress for model node. * @param tree - meta tree for inserting into model node. */ setByModelVersionGuid(versionId: string, status: ModelStatus, progress: number, tree: GroupNode[] | undefined): void; private processMetaTreeData; private processMetaTreeNodes; /** * Load meta trees by version GUIDS into existing model nodes. * @param versionIds - version GUIDs list. */ loadByModelVersionGuids(versionIds: MetaModelItem[]): Promise; /** * Fetch meta trees by version GUIDs list in parallel async mode. Meta tree will not be inserted into model node. * @param versionIds - version GUIDs list. * @param onLoadedCallback - callback function for each loaded meta tree. */ fetchByModelVersionGuidsParallel(versionIds: MetaModelItem[], onLoadedCallback: (res: { isError: boolean; modelVersionId: string; tree: any; }) => void): void; /** * Fetch meta trees by version GUIDs list. Meta tree will not be inserted into model node. * @param versionIds - version GUIDs list. */ fetchByModelVersionGuids(versionIds: MetaModelItem[]): Promise<{ isError: boolean; modelVersionId: string; tree: any; }[]>; /** * Fetch meta trees by version GUIDs list. Meta tree will not be inserted into model node. * @param versionIds - version GUIDs list. */ /** * Load meta trees by version GUIDs list and create new model nodes. * @param versionIds - version GUIDs list. * @param isShared - meta trees are loaded by external link GUIDs or model version GUIDs. * @param linkId */ load(versionIds: MetaModelItem[], isShared?: boolean, linkId?: string): Promise; /** * Get element GUID by element geometry number and local number. * @param elNum - element Number. */ getElementGuid(elNum: number): string; /** * Get element numbers by GUID. * @param guid - element GUID. */ getElementNums(guid: string): number | undefined; /** * Get full metadata for specified elements. * @param guids - Elements GUIDs. */ getElementsMetasByGuids(guids: string[], excludeModelRefs?: boolean): Promise; private collectDataRefs; private getRefMetas; /** * Get element metadata by element numbers. * @param elNum - Element number. */ getElementMetaByNumbers(elNum: number): Promise; /** * Get element metadata by GUID. * @param guid - element GUID. */ getElementMetaByGuid(guid: string): Promise; /** * Traverse all nodes in meta tree and search element node with given geometry number and element number. * If geometry or element number undefined then traverse will scan and call callback function for every element node. * @param onNodeCallback - Callback function for founded node. * @param elNums - Element numbers list or single number. * @param startNode - Start node for traversing children nodes. * @param isReversed - If true then callback function will be called from inner to outer nodes. */ traverse(onNodeCallback?: Function, elNums?: number | number[], startNode?: any, isReversed?: boolean): any[]; /** * Collects tree nodes by element nums. * @param elNums - Element number or array of element numbers. */ collect(elNums?: number | number[]): any[]; private traverseNodes; /** * Collect all element nodes for any parent node in meta tree. * @param node - Any parent node. */ collectEndNodes(node?: any | undefined): any[]; private getElementMetaFromCache; private getMetaTreeFromCache; private processCachedMetaTreeNode; private processCachedMetaTreeData3; private processCachedMetaTreeData2; private processCachedMetaTreeData; /** * Add event listener with automatic dispose. * @param eventType - event type. * @param eventListener - event listener. * @param signal - optional abort signal for manual aborting event listener. */ addAutoEventListener(eventType: MetaEvents, eventListener: EventListenerOrEventListenerObject, signal: AbortSignal): void; /** * Destroy MetaManager and delete all data from browser store. */ destroy(): void; processNodesState(): void; }