import { type TreeNode, WorldTree } from '../tree/WorldTree.js'; import { type IViewer } from '../../IViewer.js'; import { Extension } from './Extension.js'; export declare enum VisualDiffMode { PLAIN = 0, COLORED = 1 } export interface DiffResult { unchanged: Array; added: Array; removed: Array; modified: Array>; } export declare class DiffExtension extends Extension { get enabled(): boolean; set enabled(value: boolean); protected tree: WorldTree; private addedMaterialMesh; private changedNewMaterialMesh; private changedOldMaterialMesh; private removedMaterialMesh; private addedMaterialPoint; private changedNewMaterialPoint; private changedOldMaterialPoint; private removedMaterialPoint; private addedMaterials; private changedOldMaterials; private changedNewMaterials; private removedMaterials; private _materialGroups; private _visualDiff; private _diffTime; private _diffMode; constructor(viewer: IViewer); private dynamicallyLoadedDiffResources; diff(urlA: string, urlB: string, mode: VisualDiffMode, authToken?: string): Promise; /** Currently, the diff does not store the existing materials. We can do that if we need to */ undiff(): Promise; private buildIdMaps; private getDiff; private diffIterative; updateVisualDiff(time?: number, mode?: VisualDiffMode): void; private setDiffTime; private buildMaterialGroups; private resetMaterialGroups; private getVisualDiffResult; private getColoredMaterialGroups; private getPlainMaterialGroups; private getBatchesSubgroups; }