/** * Runtime Profile Configuration * * Defines different runtime profiles for various deployment scenarios: * - headless: Server-side execution without rendering (IoT, edge, testing) * - minimal: Lightweight runtime with basic rendering * - standard: Full runtime with all features * - vr: Extended runtime with VR/XR support * * @version 1.0.0 */ export type RuntimeProfileName = 'headless' | 'minimal' | 'standard' | 'vr'; export interface RenderingConfig { /** Enable visual rendering */ enabled: boolean; /** Max FPS (0 = unlimited) */ maxFps?: number; /** Enable shadows */ shadows?: boolean; /** Enable post-processing */ postProcessing?: boolean; /** Renderer type */ renderer?: 'webgl' | 'webgpu' | 'canvas2d' | 'none'; } export interface PhysicsConfig { /** Enable physics simulation */ enabled: boolean; /** Physics engine to use */ engine?: 'simple' | 'rapier' | 'cannon' | 'none'; /** Physics tick rate in Hz */ tickRate?: number; /** Gravity vector [x, y, z] */ gravity?: [number, number, number]; } export interface AudioConfig { /** Enable audio system */ enabled: boolean; /** Enable spatial audio */ spatial?: boolean; /** Max simultaneous sounds */ maxSounds?: number; } export interface NetworkConfig { /** Enable networking */ enabled: boolean; /** Enable state sync */ stateSync?: boolean; /** Sync interval in ms */ syncInterval?: number; /** Enable WebRTC for P2P */ webrtc?: boolean; } export interface InputConfig { /** Enable input handling */ enabled: boolean; /** Enable keyboard input */ keyboard?: boolean; /** Enable mouse input */ mouse?: boolean; /** Enable touch input */ touch?: boolean; /** Enable gamepad input */ gamepad?: boolean; /** Enable VR controller input */ vrControllers?: boolean; } export interface ProtocolConfig { /** Enable MQTT protocol */ mqtt?: boolean; /** Enable WebSocket protocol */ websocket?: boolean; /** Enable HTTP REST protocol */ http?: boolean; /** Enable CoAP protocol (IoT) */ coap?: boolean; } export interface RuntimeProfile { /** Profile name */ name: RuntimeProfileName; /** Profile description */ description: string; /** Rendering configuration */ rendering: RenderingConfig; /** Physics configuration */ physics: PhysicsConfig; /** Audio configuration */ audio: AudioConfig; /** Network configuration */ network: NetworkConfig; /** Input configuration */ input: InputConfig; /** Protocol bindings configuration */ protocols: ProtocolConfig; /** Enable lifecycle hooks */ lifecycleHooks: boolean; /** Enable state management */ stateManagement: boolean; /** Enable event system */ events: boolean; /** Enable trait system */ traits: boolean; /** Target memory budget in MB (0 = unlimited) */ memoryBudget: number; /** Startup timeout in ms */ startupTimeout: number; } /** * Headless profile for server-side execution * - No rendering, audio, or input * - State management, events, traits enabled * - IoT protocols enabled * - Memory budget: 50MB * - Startup time: <500ms */ export declare const HEADLESS_PROFILE: RuntimeProfile; /** * Minimal profile for lightweight browser execution * - Basic 2D rendering * - Simple physics * - Limited audio */ export declare const MINIMAL_PROFILE: RuntimeProfile; /** * Standard profile for full browser execution * - Full WebGL rendering * - Full physics * - Spatial audio */ export declare const STANDARD_PROFILE: RuntimeProfile; /** * VR profile for immersive XR applications * - High-performance WebGL/WebGPU rendering * - Full physics with haptics * - Spatial audio * - VR input support */ export declare const VR_PROFILE: RuntimeProfile; /** * Get a profile by name */ export declare function getProfile(name: RuntimeProfileName): RuntimeProfile; /** * Register a custom profile */ export declare function registerProfile(name: string, profile: RuntimeProfile): void; /** * Get all available profile names */ export declare function getAvailableProfiles(): RuntimeProfileName[]; /** * Create a custom profile by merging with a base profile */ export declare function createCustomProfile(base: RuntimeProfileName, overrides: Partial): RuntimeProfile; declare const _default: { HEADLESS_PROFILE: RuntimeProfile; MINIMAL_PROFILE: RuntimeProfile; STANDARD_PROFILE: RuntimeProfile; VR_PROFILE: RuntimeProfile; getProfile: typeof getProfile; registerProfile: typeof registerProfile; getAvailableProfiles: typeof getAvailableProfiles; createCustomProfile: typeof createCustomProfile; }; export default _default; //# sourceMappingURL=RuntimeProfile.d.ts.map