import { IDisposable } from "../../Interfaces/IDisposable"; import { Nullable } from "../../types"; export type MeshDesignRefreshRequiredEventArgs = { meshes: Nullable; effect: Nullable; }; export type MeshDesignRefreshRequiredCallback = (evtArg: MeshDesignRefreshRequiredEventArgs) => void; export type ComposerScriptActions = { attributeID: Nullable; selectedValue: Nullable; actions: MPlaza.AttributeSceneAction[]; }; export type ComposerScript = ComposerScriptActions[]; export declare class SceneActionsExecutor implements IDisposable { private _zkScene; private _scene; private _zkModel; private _sceneHelper; private _elementSelector; private _deviceType; private _meshDesignRefreshRequiredListeners; private _beginAssetsLoadingListeners; private _endAssetsLoadingListeners; private _useMaterialOffloading; private _prefetchMeshes; private _prefetchMaterials; get deviceType(): MPlaza.DeviceType; set deviceType(value: MPlaza.DeviceType); get useMaterialOffloading(): boolean; set useMaterialOffloading(value: boolean); get prefetchMeshes(): boolean; set prefetchMeshes(value: boolean); get prefetchMaterials(): boolean; set prefetchMaterials(value: boolean); constructor(zkScene: Zakeke.Scene, scene: BABYLON.Scene, zkModel?: MPlaza.Model); dispose(): void; addMeshDesignRefreshRequiredListeners(callback: MeshDesignRefreshRequiredCallback): void; private fireMeshDesignRefreshRequiredEvent; addBeginAssetsLoadingListener(callback: () => void): void; private fireBeginAssetsLoadingEvent; addEndAssetsLoadingListener(callback: () => void): void; private fireEndAssetsLoadingEvent; private isActionForDevice; private setupMeshData; private setMeshFilterAsync; private setMeshVisibilityAsync; private chekMeshVisibilityAsync; private getMeshByID; private getMaterialByID; private setCameraLocation; private adjustCamera; private zoomIn; private zoomOut; private zoom; private setCameraPivot; private setCameraZoomEnabled; private setMeshMaterial; private setSubmeshMaterial; private getMaterialFromActionValue; private getDelayedMaterialIDFromAction; private checkDelayedMaterial; private getOffloadedMaterialIDFromAction; private checkOffloadedMaterialAsync; private getDeepMaterialFromActionValueAsync; scriptRequiresDelayedLoading(script: ComposerScript): boolean; actionsRequireDelayedLoading(actions: MPlaza.AttributeSceneAction[]): boolean; actionRequiresDelayedLoading(action: MPlaza.AttributeSceneAction): boolean; private getAllMaterialElementsAsync; executeScriptAsync(script: ComposerScript): Promise; executeActionsAsync(attributeID: Nullable, selectedValue: Nullable, actions: MPlaza.AttributeSceneAction[], notifyDelayLoading?: boolean): Promise; executeActionAsync(attributeID: Nullable, selectedValue: Nullable, action: MPlaza.AttributeSceneAction): Promise; executeFilterActionAsync(attributeID: Nullable, selectedValue: Nullable, action: MPlaza.AttributeSceneAction): Promise; executeShowHideActionAsync(attributeID: Nullable, selectedValue: Nullable, action: MPlaza.AttributeSceneAction): Promise; executeSetMeshMaterialActionAsync(attributeID: Nullable, selectedValue: Nullable, action: MPlaza.AttributeSceneAction): Promise; executeSetSubMeshMaterialActionAsync(attributeID: Nullable, selectedValue: Nullable, action: MPlaza.AttributeSceneAction): Promise; executeSetMaterialColorActionAsync(attributeID: Nullable, selectedValue: Nullable, action: MPlaza.AttributeSceneAction): Promise; executeSetCameraLocationActionAsync(attributeID: Nullable, selectedValue: Nullable, action: MPlaza.AttributeSceneAction): Promise; executeAdjustCameraActionAsync(attributeID: Nullable, selectedValue: Nullable, action: MPlaza.AttributeSceneAction): Promise; executeSetCameraPivotActionAsync(attributeID: Nullable, selectedValue: Nullable, action: MPlaza.AttributeSceneAction): Promise; executeResetCameraPivotActionAsync(attributeID: Nullable, selectedValue: Nullable, action: MPlaza.AttributeSceneAction): Promise; executeEnableDisableZoomActionAsync(attributeID: Nullable, selectedValue: Nullable, action: MPlaza.AttributeSceneAction): Promise; executeSetMeshDesignMaterialActionAsync(attributeID: Nullable, selectedValue: Nullable, action: MPlaza.AttributeSceneAction): Promise; executeSetMeshDesignEffectActionAsync(attributeID: Nullable, selectedValue: Nullable, action: MPlaza.AttributeSceneAction): Promise; prefetchMeshesForUnselectedOptionsAsync(actions: MPlaza.AttributeSceneAction[]): Promise; checkActionsAssetsAreReadyAsync(actions: MPlaza.AttributeSceneAction[]): Promise; prefetchDataForUnselectedOptionsAsync(actions: MPlaza.AttributeSceneAction[]): Promise; }