import type { ToolFieldSchema } from "./defineAgentTool.js"; import type { ToolExecutionMode } from "./agentRegistry.js"; import type { ToolResult } from "./agentExecutor.js"; import type { SpotlightHostTool } from "./host.js"; export type SpotlightReadableContext = { id?: string; description: string; value: unknown | (() => unknown); available?: boolean | (() => boolean); scope?: { agentId?: string; projectId?: string; }; }; export type SpotlightActionContext = { signal?: AbortSignal; toolName: string; toolCallId?: string; }; export type SpotlightFrontendAction = Record> = { name: string; displayName?: string; description: string; input?: Record; handler: (input: TInput, context: SpotlightActionContext) => Promise | unknown; available?: boolean | (() => boolean); exposeToLoop?: boolean; executionMode?: ToolExecutionMode; }; export type SpotlightHostCoreSubscriber = (event: SpotlightHostCoreEvent) => void; export type SpotlightHostCoreEvent = { type: "action:registered"; action: SpotlightFrontendAction; } | { type: "action:unregistered"; name: string; } | { type: "readable:registered"; readable: SpotlightReadableContext; } | { type: "readable:unregistered"; id: string; }; export type SpotlightHostCoreOptions = { actions?: SpotlightFrontendAction[]; readables?: SpotlightReadableContext[]; onToolComplete?: (toolName: string, input: unknown, result: ToolResult) => void; }; export type SpotlightHostCore = { registerAction(action: SpotlightFrontendAction): () => void; registerReadable(readable: SpotlightReadableContext): () => void; listTools(): SpotlightHostTool[]; runTool(name: string, input: Record, context?: Partial): Promise>; getUiContext(): Record; subscribe(subscriber: SpotlightHostCoreSubscriber): () => void; }; export declare function createSpotlightHostCore(options?: SpotlightHostCoreOptions): SpotlightHostCore; //# sourceMappingURL=hostCore.d.ts.map