import { CrowdyStudioController, type CrowdyStudioControllerOptions } from './controller.js'; import { CrowdyAgentToolRegistry, CrowdyStudioAgentController, type CrowdyAgentBrowserToolHandlersV1, type CrowdyStudioAgentControllerOptionsV1 } from '../crowdy-agent/index.js'; import { AgentControlLeaseManager, type AgentControlLeaseManagerOptionsV1, type PlayerHostAdapterV1 } from '../player-host/index.js'; import type { CrowdyStudioEditorAdapter, CrowdyStudioEditorMode } from './editor.js'; import { type MonacoCrowdyStudioEditorOptions } from './monaco-editor.js'; export interface MountCrowdyStudioOptions extends CrowdyStudioControllerOptions, MonacoCrowdyStudioEditorOptions { /** Optional durable Agentic Crowdy Studio vertical slice. */ agent?: MountCrowdyStudioAgentOptions; } export interface MountCrowdyStudioAgentOptions extends Omit { registry?: CrowdyAgentToolRegistry; /** Exact additional handlers, normally `game.extension..*`. */ browserHandlers?: CrowdyAgentBrowserToolHandlersV1; playerHost?: PlayerHostAdapterV1; controlGate?: AgentControlLeaseManagerOptionsV1; onLocalPreempt?: CrowdyStudioAgentControllerOptionsV1['onPreempt']; autoInitialize?: boolean; } export interface CrowdyStudioHandle { controller: CrowdyStudioController; agent: CrowdyStudioAgentController | null; controlLeaseManager: AgentControlLeaseManager | null; editorMode: CrowdyStudioEditorMode; destroy(): void; } /** * Keep an embedded editor fitted to its host. Hosts can resize without a * window resize (for example when a game drags a dock splitter), so Monaco * must follow the element itself rather than the browser viewport. */ export declare function observeCrowdyStudioEditorLayout(host: HTMLElement, currentEditor: () => CrowdyStudioEditorAdapter | null): () => void; /** * Mount the project-first Crowdy Studio. Monaco and its browser Rust worker are * loaded lazily; any editor/worker/WASM startup failure keeps the full project * UI and swaps in the target/file-aware textarea editor. */ export declare function mountCrowdyStudio(host: HTMLElement, options: MountCrowdyStudioOptions): Promise; //# sourceMappingURL=mount.d.ts.map