export interface ViewerOptions {
    container: HTMLElement;
    cameraZUp: boolean;
    isDev: boolean;
    numberOfWorker: number;
    enableNavigationCube: boolean;
    enableTools: boolean;
    enablePostProcessing?: boolean;
    /**
     * Optimize Edge rendering, Show/ Hide edges base on camera movement
     */
    adaptiveEdges?: boolean;
    adaptiveAmbientOcclusion?: boolean;
    /**
     * Skip lighting calculations on materials during camera movement.
     * Reduces fragment shader cost for better FPS while orbiting/panning.
     * Default: false
     */
    adaptiveLighting?: boolean;
    /**
     * Bypass EffectComposer and render directly to screen during camera movement.
     * Eliminates render target overhead and fullscreen pass copies.
     * Default: false
     */
    adaptivePostProcessing?: boolean;
    /**
     * Disable shadow during camera movement.
     * Default: false
     */
    adaptiveShadow?: boolean;
    /**
     * Swap materials to MeshLambertMaterial during camera movement.
     * Per-vertex lighting instead of per-pixel — cheaper with a lit look.
     * Default: false
     */
    adaptiveMaterial?: boolean;
    /**
     * Use Three.js BatchedMesh (V3) instead of custom ViralBatchedMesh (V1).
     * Enables per-element frustum culling, GPU-sorted rendering, and better performance.
     * Default: false (V1 path). Set to true to opt-in to V3.
     */
    useBatchedMeshV3?: boolean;
    /**
     * from 0 to 1, step 0.1
     */
    navigationCubeScale?: number;
    /**
     * Hide the home button (house icon) on the navigation cube.
     * When true, only the 3D orientation cube is shown.
     * Default: false
     */
    hideNavigationCubeHomeButton?: boolean;
    /**
     * Override the secondary branding color used across the entire viewer UI
     * (navigation cube, toolbar active states, home button, hover planes, etc.).
     * Accepts any CSS hex color string (e.g. "#56b77e", "#ff0000").
     * Defaults to LightTheme.secondary (#56b77e) when omitted.
     */
    secondaryColor?: string;
    /**
     * Maximum pixel ratio. Capped at this value regardless of device DPR.
     * Default: 2.0. Set to 1.0 for low-end devices, 3.0 for high-end.
     * [F-02] Prevents 2-9x overdraw on high-DPI displays.
     */
    pixelRatioMax?: number;
    /**
     * Hide the built-in landscape settings panel UI.
     * When true, the panel is not created; use the landscape API methods
     * on ViralViewerApi to control layers, colors, terrain style, and traffic programmatically.
     * Default: false
     */
    hideLandscapePanel?: boolean;
    /**
     * Auto-restore session state (camera, visibility, elevation section) from IndexedDB
     * on viewer initialization. Default: true. Set to false to disable.
     */
    autoRestoreSession?: boolean;
    /**
     * Interval in milliseconds for snapshot auto-save after last state change.
     * Default: 30000 (30s). Set to 0 to disable snapshot auto-save.
     */
    snapshotAutoSaveInterval?: number;
}
