import { OrbitControllerSettings } from '../plugins/orbitcontroller/index.ts';
import { DIVEEngine, EngineSettings } from '../engine/Engine.ts';
declare global {
    interface Window {
        DIVE: {
            /**
             * All instances of DIVE
             */
            instances: DIVE[];
            /**
             * Get the first instance of DIVE
             */
            get instance(): DIVE | undefined;
        };
    }
}
export type DIVESettings = EngineSettings & {
    /** Settings for modules */
    useLocalDRACOLoader?: boolean;
} & Partial<OrbitControllerSettings>;
export declare const DIVEDefaultSettings: DIVESettings;
/**
 * #### DIVE
 * is the main class of the DIVE framework.
 *
 * An instance of this class delivers a complete 3D environment with a perspective camera, orbit controls, a toolbox, and a communication system.
 * ```ts
 * import { DIVE } from "@shopware-ag/dive";
 *
 * const myWrapper = document.getElementById('myWrapper');
 *
 * const dive = new DIVE();
 *
 * myWrapper.appendChild(dive.Canvas);
 *
 * dive.Communication.subscribe('GET_ALL_SCENE_DATA', () => {
 *  // do something
 * }));
 *
 * dive.Communication.performAction('GET_ALL_SCENE_DATA', {});
 * ```
 * @module
 */
export declare class DIVE {
    static QuickView(uri: string, settings?: Partial<DIVESettings & {
        lightIntensity?: number;
    }>): Promise<DIVE>;
    private _instanceId;
    private _settings;
    get engine(): DIVEEngine;
    private _engine;
    private orbitController;
    private axisCamera;
    get canvas(): HTMLCanvasElement;
    setCanvas(canvas: HTMLCanvasElement): void;
    constructor(settings?: Partial<DIVESettings>);
    dispose(): Promise<void>;
}
