import { Scene } from '@babylonjs/core/scene';

export interface SceneEffectsOptions {
    showGrid?: boolean;
    showShadows?: boolean;
    showTextures?: boolean;
    showWireframe?: boolean;
    webXRSessionActive?: boolean;
}
export declare class SceneEffects {
    private readonly scene;
    private showGrid;
    private showShadows;
    private showTextures;
    private showWireframe;
    private gridLoading;
    constructor(scene: Scene);
    /**
     * Initialize scene effects with options
     */
    initialize(options?: SceneEffectsOptions): void;
    isGridLoading(): boolean;
    /**
     * Toggle grid visibility
     */
    toggleGrid(): Promise<boolean>;
    /**
     * Toggle shadows visibility
     */
    toggleShadows(): boolean;
    /**
     * Toggle textures visibility
     */
    toggleTextures(): boolean;
    /**
     * Set textures visibility to specific state
     */
    setTextures(enabled: boolean): boolean;
    /**
     * Toggle wireframe visibility
     */
    toggleWireframe(): boolean;
    /**
     * Set wireframe visibility to specific state
     */
    setWireframe(enabled: boolean): boolean;
    /**
     * Update grid visibility and create/remove grid as needed
     */
    private updateGridVisibility;
    /**
     * Create radial fade texture for grid
     */
    private createRadialFadeTexture;
    /**
     * Update shadows visibility
     */
    private updateShadowsVisibility;
    /**
     * Update textures visibility
     */
    private updateTexturesVisibility;
    /**
     * Store and remove textures from material
     */
    private storeAndRemoveTextures;
    /**
     * Restore textures to material
     */
    private restoreTextures;
    /**
     * Update wireframe visibility
     */
    private updateWireframeVisibility;
    /**
     * Check if mesh is an environment mesh (skybox, grid, etc.)
     */
    private isEnvironmentMesh;
    /**
     * Update grid after model is loaded (recreate with proper proportions)
     */
    updateGridAfterModelLoad(): Promise<void>;
    generateUSDZBlob(): Promise<Blob | null>;
    /**
     * Get current effect states
     */
    getEffectStates(): SceneEffectsOptions;
    /**
     * Dispose of scene effects resources
     */
    dispose(): void;
}
