import { AbstractMesh, CubeTexture, TargetCamera, Texture } from "@babylonjs/core";
import { MyTypes } from "../declarations";
import { PlaceName, CameraNameByPlace, SpotPositions, SpotRotations, SoundspotSounds, TriggerMeshes, WallMeshes } from "../types";
declare const defaultCamRefs: () => {
    camera: TargetCamera | null;
    camCubeMeshes: AbstractMesh[];
    probeTexture: CubeTexture | null;
    backdropTexturesBySegment: Record<string, {
        color: Texture;
        depth: Texture;
    }[]>;
    isTriggerable: boolean;
    focusPointOnSlate: {
        x: number | null;
        y: number | null;
    };
};
export type DefaultCameraRefs = ReturnType<typeof defaultCamRefs>;
export type CameraRefs<T_PlaceName extends PlaceName> = {
    [P_CameraName in CameraNameByPlace[T_PlaceName]]: ReturnType<typeof defaultCamRefs>;
};
export default function places<T_MyTypes extends MyTypes = MyTypes>(prendyAssets: T_MyTypes["Assets"]): {
    startStates: {
        [x: string]: {
            toggledWalls: Record<string, boolean>;
        };
    };
    getDefaultState: <K_PlaceName extends string>(itemId: K_PlaceName | string) => {
        toggledWalls: Record<string, boolean>;
    };
    getDefaultRefs: <K_PlaceName_1 extends string>(itemId: K_PlaceName_1) => {
        rootMesh: null | AbstractMesh;
        spotPositions: SpotPositions<string>;
        spotRotations: SpotRotations<string>;
        soundspotSounds: SoundspotSounds<string>;
        triggerMeshes: TriggerMeshes<string>;
        wallMeshes: WallMeshes<string>;
        camsRefs: CameraRefs<string>;
    };
};
export {};
