import { IDisposable } from "../../Interfaces/IDisposable";
export type MeshLocationInfo = {
    p: any;
    rQ: any;
    rE: any;
    s: any;
};
export declare class MeshLocationsManager implements IDisposable {
    private _zkScene;
    private _scene;
    private _sceneHelper;
    private _meshLocationCache;
    private _cameraAnimationCompletedListeners;
    private _meshAnimationCompletedListeners;
    private _beforeSaveMeshLocationListeners;
    private _afterSaveMeshLocationListeners;
    constructor();
    dispose(): void;
    setScene(scene: BABYLON.Scene): void;
    setModel(zkScene: Zakeke.Scene): void;
    setModelAndScene(zkScene: Zakeke.Scene, scene: BABYLON.Scene): void;
    private resetCache;
    private invalidateCache;
    private disposeSceneHelper;
    resetSceneHelper(): void;
    clearMeshLocations(): void;
    setMeshLocationByID(locationID: string): Promise<void>;
    setMeshLocation(zkMeshLocation: Zakeke.SceneMeshLocation): Promise<void>;
    saveMeshLocation(name: string): void;
    saveExplodedMeshLocation(): void;
    saveCollapsedMeshLocation(): void;
    private updateMeshLocation;
    private getMeshPRSs;
    explodeMeshes(): Promise<void>;
    collapseMeshes(): Promise<void>;
    private fireCameraAnimationCompletedEvent;
    addCameraAnimationCompletedListener(listenerFunction: () => void): void;
    private fireMeshAnimationCompletedEvent;
    addMeshAnimationCompletedListener(listenerFunction: () => void): void;
    private fireBeforeSaveMeshLocationEvent;
    addBeforeSaveMeshLocationListener(listenerFunction: () => void): void;
    private fireAfterSaveMeshLocationEvent;
    addAfterSaveMeshLocationListener(listenerFunction: () => void): void;
}
