/** * Spawn Context * Manages spawn tool state and pending spawn requests * Extracted from EditorContext for better separation of concerns */ import React from 'react'; import { ECSContext } from '../../ecs'; import { CommandManager } from '../../editor/CommandManager'; import type { ArchetypeRef } from '../../spawn'; export type SpawnTool = 'box' | 'sphere' | 'cylinder' | 'cone' | 'pyramid' | 'light' | 'player' | 'npc' | 'camera' | 'prefab' | 'asset' | null; export interface SpawnState { /** Current spawn tool (if any) - clicking in viewport spawns this entity type */ spawnTool: SpawnTool; } export interface SpawnContextValue { spawnTool: SpawnTool; setSpawnTool: (tool: SpawnTool, archetype?: ArchetypeRef) => void; clearSpawnTool: () => void; } export interface SpawnProviderProps { children: React.ReactNode; ctx: ECSContext; commandManager: CommandManager; onEntitySpawned?: (eid: number) => void; } /** * SpawnProvider - Manages spawn tool state and handles spawn requests */ export declare function SpawnProvider({ children, ctx, commandManager, onEntitySpawned }: SpawnProviderProps): import("react/jsx-runtime").JSX.Element; /** * Hook to access spawn context */ export declare function useSpawn(): SpawnContextValue; //# sourceMappingURL=SpawnContext.d.ts.map