import { WebGPURenderer } from 'three/webgpu';
import { DIVEScene } from '../scene/Scene.ts';
import { DIVEPerspectiveCamera } from '../camera/PerspectiveCamera.ts';
import { DIVEEnvironment } from '../environment/Environment.ts';
export type DIVERendererSettings = {
    /**
     * The canvas to render to. When undefined, the canvas will be created automatically and reachable via the `diveInstance.canvas` property.
     *
     * @default undefined
     */
    canvas: HTMLCanvasElement | undefined;
    /**
     * Whether to enable antialiasing
     *
     * @default true
     */
    antialias: boolean;
    /** Whether to enable alpha channel */
    alpha: boolean;
    /**
     * Power preference for the WebGL context
     *
     * @default 'high-performance'
     */
    powerPreference: 'high-performance' | 'low-power';
    /**
     * Precision of the shader
     *
     * @default 'highp'
     */
    precision: 'highp' | 'mediump' | 'lowp';
    /**
     * Whether to enable stencil buffer
     *
     * @default false
     */
    stencil: boolean;
    /**
     * Whether to enable depth buffer
     *
     * @default true
     */
    depth: boolean;
    /**
     * Whether to use logarithmic depth buffer
     *
     * @default true
     */
    logarithmicDepthBuffer: boolean;
    /**
     * Whether to enable shadows
     *
     * @default true
     */
    shadows: boolean;
    /**
     * The quality of the shadows
     *
     * @default 'high'
     */
    shadowQuality: 'high' | 'medium' | 'low';
};
export declare const DIVERendererDefaultSettings: Required<DIVERendererSettings>;
/**
 * A changed version of the WebGLRenderer.
 *
 * Has to be started manually by calling StartRenderer().
 *
 * @module
 */
export declare class DIVERenderer {
    private _scene;
    private _camera;
    readonly isDIVERenderer: true;
    private _webgpurenderer;
    private _environment;
    private _initPromise;
    private _settings;
    constructor(_scene: DIVEScene, _camera: DIVEPerspectiveCamera, settings?: Partial<DIVERendererSettings>);
    get webgpurenderer(): WebGPURenderer;
    get environment(): DIVEEnvironment;
    get canvas(): HTMLCanvasElement;
    get initialized(): boolean;
    initAsync(): Promise<void>;
    /**
     * @deprecated Use {@link DIVERenderer.tick} instead.
     */
    render(): void;
    tick(): void;
    onResize(width: number, height: number): void;
    dispose(): void;
    setCanvas(canvas: HTMLCanvasElement): void;
    private _createWebGPURenderer;
}
