import { StateCreator } from 'zustand';
import * as THREE from 'three';
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
import { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader.js';
import { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader';
import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader';
export interface CanvasSlice {
    scene: THREE.Scene;
    camera: THREE.PerspectiveCamera;
    gl: THREE.Renderer;
    orbitControls: any;
    transformControls: any;
    raycaster: THREE.Raycaster;
    forceUpdate: boolean;
    pointer: any;
    selected: string | null;
    composer: any;
    loaders: {
        GLTFLoader: any;
        RGBELoader: any;
        FBXLoader: any;
        DracoLoader: any;
        TextureLoader: any;
    };
    loading: boolean;
    setSelected: (selected: string) => void;
    clearSelected: () => void;
    render: () => void;
    animate: () => void;
}
export declare const scene: THREE.Scene;
export declare const camera: THREE.PerspectiveCamera;
export declare const renderer: THREE.WebGLRenderer;
export declare const OrbitControls: import("three/examples/jsm/controls/OrbitControls").OrbitControls;
export declare const TransformControls: import("three/examples/jsm/controls/TransformControls").TransformControls;
export declare const raycaster: THREE.Raycaster;
export declare const pointer: THREE.Vector2;
export declare const composer: {
    composer: import("three/examples/jsm/postprocessing/EffectComposer").EffectComposer;
    outlinePass: import("three/examples/jsm/postprocessing/OutlinePass").OutlinePass;
};
export declare const _GLTFLoader: GLTFLoader;
export declare const _RGBELoader: RGBELoader;
export declare const _FBXLoader: FBXLoader;
export declare const _DracoLoader: DRACOLoader;
export declare const _TextureLoader: THREE.TextureLoader;
export declare const _pmremGenerator: THREE.PMREMGenerator;
declare const canvasSlice: StateCreator<CanvasSlice>;
export default canvasSlice;
