import { type FrontendToolManifestV1, type HostToolResultRequest, type SpotlightInitializeResponse, type SpotlightItem, type SpotlightSkill, type SpotlightSkillRegistration, type SpotlightThread, type SpotlightTurn, type SpotlightTurnEvent, type SpotlightTurnStartRequest } from "@inupedia/spotlight-protocol"; import { type SpotlightClientConfig } from "./http.js"; import { type ClientTool } from "./clientTool.js"; import type { SpotlightResourceProvider } from "./resourceProvider.js"; export interface SpotlightAppClientOptions extends SpotlightClientConfig { toolManifest?: FrontendToolManifestV1 | (() => FrontendToolManifestV1 | Promise); /** Preferred: register Tools and let the SDK derive and snapshot the manifest. */ tools?: readonly ClientTool[] | (() => readonly ClientTool[]); /** Resource providers generate search/get/action Tools and optional Skills. */ resources?: readonly SpotlightResourceProvider[] | (() => readonly SpotlightResourceProvider[]); frontendBuildId?: string; skills?: Array | (() => Array); executeTool?: (request: { turnId: string; item: Extract; }) => Promise<{ success: boolean; output?: unknown; error?: string; trace?: HostToolResultRequest["trace"]; uiContext?: HostToolResultRequest["uiContext"]; }>; approveTool?: (request: { turnId: string; item: Extract; reason?: string; }) => boolean | Promise; clientInfo?: { name?: string; title?: string; version?: string; }; } export interface SpotlightRunResult { thread: SpotlightThread; turn: SpotlightTurn; events: SpotlightTurnEvent[]; items: SpotlightItem[]; finalResponse: string; summary?: Extract["summary"]; } export interface SpotlightRunOptions extends Omit { signal?: AbortSignal; threadId?: string; } export interface SpotlightThreadHandle { readonly id: string | undefined; run(input: string, options?: Omit): Promise; } export declare class SpotlightAppClient { private readonly options; private readonly http; private initialization; private initializedDigest; private capabilitySessionId; private toolRegistry; constructor(options: SpotlightAppClientOptions); private manifest; private resolveResources; private resolveTools; private resolveSkills; initialize(signal?: AbortSignal): Promise; startThread(threadId?: string, signal?: AbortSignal): Promise; thread(threadId?: string): SpotlightThreadHandle; listThreads(signal?: AbortSignal): Promise; forkThread(threadId: string, signal?: AbortSignal): Promise; startTurn(threadId: string, request: SpotlightTurnStartRequest, signal?: AbortSignal): Promise; run(input: string, options?: SpotlightRunOptions): Promise; streamTurn(turnId: string, signal?: AbortSignal): AsyncGenerator; submitToolResult(turnId: string, result: HostToolResultRequest, signal?: AbortSignal): Promise<{ ok: true; }>; cancelTurn(turnId: string): Promise; } export declare function createSpotlightAppClient(options: SpotlightAppClientOptions): SpotlightAppClient; //# sourceMappingURL=appClient.d.ts.map