import { type FilteringState } from './extensions/FilteringExtension.js';
import { type InlineView, type PolarView, type CanonicalView } from './extensions/CameraController.js';
import type { Query, QueryArgsResultMap, QueryResult } from './queries/Query.js';
import { type SpeckleView, type SunLightConfiguration, type ViewerParams } from '../IViewer.js';
import { Viewer } from './Viewer.js';
import { WorldTree } from './tree/WorldTree.js';
import { type MeasurementOptions } from './extensions/measurements/MeasurementsExtension.js';
import { type DiffResult, VisualDiffMode } from './extensions/DiffExtension.js';
import { type PropertyInfo } from './filtering/PropertyManager.js';
import { BatchObject } from './batching/BatchObject.js';
import { SpeckleViewer } from '@speckle/shared';
export declare class LegacyViewer extends Viewer {
    private cameraController;
    private selection;
    private sections;
    private measurements;
    private filtering;
    private explodeExtension;
    private diffExtension;
    private highlightExtension;
    constructor(container: HTMLElement, params?: ViewerParams);
    init(): Promise<void>;
    getRenderer(): import("./SpeckleRenderer.js").default;
    /** SECTION BOX */
    setSectionBox(boxData?: SpeckleViewer.ViewerState.SectionBoxData, offset?: number): void;
    getCurrentSectionBox(): SpeckleViewer.ViewerState.SectionBoxData;
    toggleSectionBox(): void;
    sectionBoxOff(): void;
    sectionBoxOn(): void;
    /** FILTERING */
    selectObjects(objectIds: string[]): Promise<FilteringState>;
    resetSelection(): Promise<FilteringState>;
    hideObjects(objectIds: string[], stateKey?: string | undefined, includeDescendants?: boolean, ghost?: boolean): Promise<FilteringState>;
    showObjects(objectIds: string[], stateKey?: string | undefined, includeDescendants?: boolean): Promise<FilteringState>;
    isolateObjects(objectIds: string[], stateKey?: string | undefined, includeDescendants?: boolean, ghost?: boolean): Promise<FilteringState>;
    unIsolateObjects(objectIds: string[], stateKey?: string | undefined, includeDescendants?: boolean): Promise<FilteringState>;
    highlightObjects(objectIds: string[]): Promise<FilteringState>;
    resetHighlight(): Promise<FilteringState>;
    setColorFilter(property: PropertyInfo, ghost?: boolean): Promise<FilteringState>;
    removeColorFilter(): Promise<FilteringState>;
    setUserObjectColors(groups: {
        objectIds: string[];
        color: string;
    }[]): Promise<FilteringState>;
    resetFilters(): Promise<FilteringState | null>;
    private preserveSelectionHighlightFilter;
    /** TREE */
    getDataTree(): void;
    getWorldTree(): WorldTree;
    /** QUERIES */
    query<T extends Query>(query: T): QueryArgsResultMap[T['operation']];
    queryAsync(query: Query): Promise<QueryResult> | null;
    /** CAMERA */
    zoom(objectIds?: string[], fit?: number, transition?: boolean): void;
    setOrthoCameraOn(): void;
    setPerspectiveCameraOn(): void;
    toggleCameraProjection(): void;
    setLightConfiguration(config: SunLightConfiguration): void;
    getViews(): SpeckleView[];
    setView(view: CanonicalView | SpeckleView | InlineView | PolarView, transition?: boolean): void;
    /** MISC */
    screenshot(): Promise<string>;
    explode(time: number): void;
    getObjects(id: string): BatchObject[];
    /**
     * OBJECT LOADING/UNLOADING
     */
    loadObjectAsync(url: string, token?: string | undefined, enableCaching?: boolean, zoomToObject?: boolean): Promise<void>;
    diff(urlA: string, urlB: string, mode: VisualDiffMode, authToken?: string): Promise<DiffResult>;
    undiff(): Promise<void>;
    setDiffTime(_diffResult: DiffResult, time: number): void;
    setVisualDiffMode(_diffResult: DiffResult, mode: VisualDiffMode): void;
    enableMeasurements(value: boolean): void;
    setMeasurementOptions(options: MeasurementOptions): void;
    removeMeasurement(): void;
    dispose(): void;
}
