/** * Renderer interface for abstracting Three.js scene management * This allows the engine to work with different rendering backends */ export interface RendererOptions { canvas?: HTMLCanvasElement; antialias?: boolean; alpha?: boolean; preserveDrawingBuffer?: boolean; width?: number; height?: number; clearColor?: number; clearAlpha?: number; } export interface Renderer { /** * Initialize the renderer */ init(options: RendererOptions): void; /** * Render the scene */ render(): void; /** * Resize the renderer */ resize(width: number, height: number): void; /** * Get the canvas element */ getCanvas(): HTMLCanvasElement | null; /** * Dispose of the renderer */ dispose(): void; /** * Get the scene */ getScene(): Scene | null; /** * Set clear color */ setClearColor(color: number, alpha?: number): void; } export interface SceneNode { uuid: string; position?: [number, number, number]; rotation?: [number, number, number]; scale?: [number, number, number]; visible?: boolean; parent?: string; children?: string[]; [key: string]: any; } export declare class Scene { private nodes; constructor(); /** * Add a node to the scene */ addNode(node: SceneNode): void; /** * Remove a node from the scene */ removeNode(uuid: string): boolean; /** * Update a node in the scene */ updateNode(uuid: string, data: Partial): boolean; /** * Get a node from the scene */ getNode(uuid: string): SceneNode | undefined; /** * Get all nodes */ getAllNodes(): SceneNode[]; /** * Get root nodes (nodes without parent or with null parent) */ getRootNodes(): SceneNode[]; /** * Get children of a node */ getChildren(parentUuid: string): SceneNode[]; /** * Check if node exists */ hasNode(uuid: string): boolean; /** * Get node count */ getNodeCount(): number; /** * Clear all nodes */ clear(): void; /** * Traverse all nodes */ traverse(callback: (node: SceneNode) => void): void; /** * Find nodes by property */ findNodes(predicate: (node: SceneNode) => boolean): SceneNode[]; } //# sourceMappingURL=renderer.d.ts.map