import type { GameState, GameSettings } from '../core/types'; import { GameClock } from '../core/GameClock'; import { GameConfig } from '../core/GameConfig'; import { EventBus } from '../core/EventBus'; import { ServiceLocator } from '../core/ServiceLocator'; import { World } from '../ecs/World'; import { InputManager } from '../input/InputManager'; import { AudioManager } from '../audio/AudioManager'; import { Camera2D } from '../rendering/Camera2D'; import { Renderer2D } from '../rendering/Renderer2D'; import { PhysicsEngine2D } from '../physics/PhysicsEngine2D'; import { SceneManager } from '../scene/SceneManager'; import { GameUI } from '../ui/GameUI'; import { PlayerManager, SplitScreenManager } from '../multiplayer/LocalMultiplayer'; export interface EngineOptions { canvas: HTMLCanvasElement; settings?: Partial; debug?: boolean; } export declare class NiceGameEngine { readonly events: EventBus; readonly config: GameConfig; readonly clock: GameClock; readonly services: ServiceLocator; readonly world: World; readonly input: InputManager; readonly audio: AudioManager; readonly renderer: Renderer2D; readonly physics: PhysicsEngine2D; readonly scenes: SceneManager; readonly ui: GameUI; readonly players: PlayerManager; readonly splitScreen: SplitScreenManager; private loop; private canvas; private _state; private _debug; constructor(options: EngineOptions); get state(): GameState; get camera(): Camera2D; get debug(): boolean; set debug(v: boolean); start(): Promise; stop(): void; pause(): void; resume(): void; destroy(): void; /** Alias for destroy() — unified cleanup pattern. */ dispose(): void; private update; private fixedUpdate; private render; }