import { FloorplanController, FloorplanControllerCustomInitArgs } from "../controllers/floorplan";
import { TopviewController, TopviewControllerCustomInitArgs } from "../controllers/topview";
import { PanoramaController, PanoramaControllerCustomInitArgs } from "../controllers/panorama";
import { VRPanoramaController, VRPanoramaControllerCustomInitArgs } from "../controllers/vrPanorama";
import { ModelController, ModelControllerCustomInitArgs } from "../controllers/model";
import { MapviewController, MapviewControllerCustomInitArgs } from "../controllers/mapview";
import { XRPanoramaController, XRPanoramaControllerCustomInitArgs } from "../controllers/xrPanorama";
import { BaseControllerInitArgs as BaseControllerInitType } from "../controllers/base";
import { Mode } from "./mode";
declare const Controllers: {
    readonly Floorplan: typeof FloorplanController;
    readonly Topview: typeof TopviewController;
    readonly Panorama: typeof PanoramaController;
    readonly VRPanorama: typeof VRPanoramaController;
    readonly Model: typeof ModelController;
    readonly Mapview: typeof MapviewController;
    readonly XRPanorama: typeof XRPanoramaController;
};
declare const controllersDefaultInitArgs: {
    Floorplan: Required<FloorplanControllerCustomInitArgs>;
    Topview: Required<TopviewControllerCustomInitArgs>;
    Panorama: Required<PanoramaControllerCustomInitArgs>;
    VRPanorama: Required<VRPanoramaControllerCustomInitArgs>;
    Model: Required<ModelControllerCustomInitArgs>;
    Mapview: Required<MapviewControllerCustomInitArgs>;
    XRPanorama: Required<XRPanoramaControllerCustomInitArgs>;
};
type ControllerCustomInitTypes = {
    Floorplan: FloorplanControllerCustomInitArgs;
    Topview: TopviewControllerCustomInitArgs;
    Panorama: PanoramaControllerCustomInitArgs;
    VRPanorama: VRPanoramaControllerCustomInitArgs;
    Model: ModelControllerCustomInitArgs;
    Mapview: MapviewControllerCustomInitArgs;
    XRPanorama: XRPanoramaControllerCustomInitArgs;
};
type ControllerType<T extends Mode = Mode> = typeof Controllers[T];
type ControllerInitType<T extends Mode = Mode> = ConstructorParameters<ControllerType<T>>[0];
type ControllerInstanceType<T extends Mode = Mode> = InstanceType<typeof Controllers[T]>;
export { Controllers, controllersDefaultInitArgs, };
export type { ControllerType, ControllerInitType, ControllerInstanceType, BaseControllerInitType, ControllerCustomInitTypes, };
