import { PlatformExporter, type PlatformInfo, type NiceProject, type ExportOptions } from './PlatformExporter';
export interface ThreeJSExportOptions {
    /** Use TypeScript */
    typescript?: boolean;
    /** Bundler to use */
    bundler?: 'vite' | 'webpack' | 'parcel' | 'none';
    /** Include VR/AR support */
    xr?: boolean;
    /** Use OrbitControls by default */
    orbitControls?: boolean;
    /** Include post-processing */
    postProcessing?: boolean;
    /** Physics engine */
    physics?: 'cannon' | 'ammo' | 'rapier' | 'none';
    /** Three.js version */
    version?: string;
}
export declare class ThreeJSExporter extends PlatformExporter {
    readonly platformId: "threejs";
    readonly platformInfo: PlatformInfo;
    private tsExporter;
    private graphToAST;
    protected doExport(project: NiceProject, options: ExportOptions): Promise<void>;
    private exportPackageJson;
    private exportIndexHtml;
    private exportMainGame;
    private exportScenes;
    private exportScene;
    private generateEntityCode;
    private generateMeshCode;
    private generateModelCode;
    private generateLightCode;
    private exportScripts;
    private exportUtilities;
    private exportShaders;
    private exportBundlerConfig;
    private exportTSConfig;
    private sanitizeName;
}
export default ThreeJSExporter;
