import "regenerator-runtime/runtime.js";
import { IConfigurator } from "./interfaces/configurator.interface";
import { IEventObservable } from "./interfaces/event-observable.interface";
import { IPostMessage, MaterializeMeshConfig, IViewerCommunicator, MeshData, IViewerCommunicatorOptions, ICreateInstanceFromUrlOptions, Collision, IImagesByTourResponse, ILight, IShadowPlaneOptions, IHdriOptions, IAdjustmentsPresetJson, IBroadcastSceneSummaryOption, ISceneSummary, IMeshProps, JsonToHtmlObject, EventSelector, TutorialType, IExportOptions, IExpotedModel, IGifGenOptions, IMatcapOptions, IApplyTextureOptions, IBoundingBox, IAnimationOptions, ICameraControlsStateAnimation, IMaterialPropsOptions, ISwapMaterialType, IDiamondOptions } from "./interfaces/viewer-communicator.interface";
export declare class ViewerCommunicator implements IViewerCommunicator {
    configurator: IConfigurator;
    private _hexaViewer;
    private _frameID;
    private _isViewerLoaded;
    private _isModelLoaded;
    private _isAnimateEnterEnd;
    private _isViewerListening;
    private _onMessageBind;
    private _meshesData;
    private _mesheAnimations;
    private _xrSupport;
    private _eventObservable;
    private _hasDestroyed;
    private _onLoadingProgress;
    constructor(options?: IViewerCommunicatorOptions);
    get hexaViewer(): HTMLElement;
    set hexaViewer(hv: HTMLElement);
    get eventObservable(): IEventObservable;
    get isModelLoaded(): boolean;
    get hasDestroyed(): boolean;
    get isViewerListening(): boolean;
    private set isViewerListening(value);
    private set isModelLoaded(value);
    private initEventObservable;
    private attachInstance;
    private initFrameID;
    private attachEvents;
    private onMessage;
    private _checkModelLoaded;
    private _onAnimateEnterEnd;
    private _onModelLoaded;
    private _onViewerFullyLoaded;
    private _onMeshesData;
    private _onMeshAnimations;
    private _updateViewerFullyLoaded;
    onModelLoaded(): Promise<unknown>;
    onModelReady(): Promise<unknown>;
    onViewerListening(): Promise<unknown>;
    onAnimateEnterEnd(): Promise<unknown>;
    getMeshesData(): Promise<{
        [id: string]: MeshData;
    }>;
    getMeshAnimations(): Promise<{
        [id: string]: IAnimationOptions;
    }>;
    getMaterials(): Promise<{
        [id: string]: IAnimationOptions;
    }>;
    updateMeshAnimations(meshAnimations: {
        [id: string]: IAnimationOptions;
    }): void;
    private safeParse;
    private generateUUID;
    materializeMesh(meshName: string, config: MaterializeMeshConfig): void;
    sendToViewer(msg: IPostMessage): void;
    createInstanceFromUrl(viewerURL: string, params?: any, options?: ICreateInstanceFromUrlOptions): Promise<HTMLElement>;
    private getUrlParams;
    togglePicInPic(state: boolean): void;
    toggleWireframe(state: boolean): void;
    toggleUvMode(state: boolean): void;
    toggleMatcapMode(state: boolean, options?: IMatcapOptions): void;
    toggleHideBottom(state: boolean): void;
    isWebXrSupported(): Promise<boolean>;
    toggleWebXR(state: boolean, invokeWhenReady?: boolean): void;
    toggleAR(state: boolean, invokeWhenReady?: boolean): void;
    waitForCollisions(): Promise<Array<Collision>>;
    toggleCollision(collisionMode: boolean, color?: string): void;
    deleteCollision(position: number, count: number): void;
    removeAllCollisions(): void;
    adjustScene(): Promise<unknown>;
    applyPreset(json: IAdjustmentsPresetJson): Promise<unknown>;
    applyHDRI(hdri: IHdriOptions): void;
    applyShadowPlane(shadowPlane: IShadowPlaneOptions): void;
    broadcastSceneSummary(params?: IBroadcastSceneSummaryOption): Promise<ISceneSummary>;
    setLightsByJson(lights: {
        [id: string]: Array<ILight>;
    }): Promise<unknown>;
    onCreateImagesByTour(): Promise<IImagesByTourResponse>;
    setMeshProps(optins: IMeshProps): void;
    appendDynamicElement(obj: JsonToHtmlObject, events: Array<EventSelector>, selectorToAppend?: string): void;
    controlsTutorial(types?: Array<TutorialType>): void;
    toggleAutoRotate(state: boolean): void;
    onModelInteraction(cb?: Function): Promise<string>;
    goToInitialCamPos(): void;
    getCurrentScreenshot(): Promise<string>;
    expotModel(options: IExportOptions): Promise<IExpotedModel>;
    getScreenshotsSequence(options?: IGifGenOptions): Promise<Array<string> | Blob>;
    applyTexture(options: IApplyTextureOptions): void;
    setMaterialProps(options: IMaterialPropsOptions): void;
    swapMaterialType(options: ISwapMaterialType): void;
    displayFiles(files: Array<Blob>): void;
    getBoundingBox(): Promise<IBoundingBox>;
    toggleNoDistanceLimit(state: boolean): Promise<void>;
    toggleCloseup(state: boolean): Promise<void>;
    setCameraPosition(pos: ICameraControlsStateAnimation): Promise<void>;
    setDiamonds(state: boolean, meshesNames: Array<string>, options: IDiamondOptions): Promise<void>;
    getDiamondsOptions(): Promise<IDiamondOptions>;
    registerForLoadingProgress(callback: Function | any): void;
    destroy(): void;
}
