import type { HappyMcpToolResult, HappyNetworkRequest, HappyNetworkRequestResult, HappyNetworkTunnel, HappyPluginClient, HappyPluginTestRequest, HappyPluginTestSeed, HappySystemPromptHookInput, HappySystemPromptHookResult, HappyTracingEvent } from "./types.js"; export interface HappyPluginTestHost { readonly apps: { callTool(server: string, tool: string, argumentsValue?: unknown, options?: { signal?: AbortSignal; timeoutMs?: number; }): Promise; readonly storage: { delete(key: string): Promise; get(key: string): Promise; list(): Promise; set(key: string, value: unknown): Promise; }; }; readonly client: HappyPluginClient; readonly compute: { /** Simulates the owning provider process or stream ending. */ disconnectProvider(mode?: "close" | "end" | "error"): void; waitForProvider(timeoutMs?: number): Promise; }; readonly environment: Readonly<{ HAPPY_PLUGIN_DIRECTORY: string; HAPPY_PLUGIN_SOCKET_PATH: string; HAPPY_PLUGIN_TOKEN: string; }>; readonly mcp: { callTool(server: string, tool: string, argumentsValue?: unknown, options?: { signal?: AbortSignal; timeoutMs?: number; }): Promise; /** Simulates an unexpected daemon stream end for recovery tests. */ disconnectServers(mode?: "close" | "end" | "error"): void; listTools(): readonly { description: string; inputSchema: unknown; server: string; tool: string; }[]; waitForTools(count?: number, timeoutMs?: number): Promise; }; readonly network: { request(request: Omit, options?: { timeoutMs?: number; }): Promise; tunnel(tunnel: HappyNetworkTunnel): void; }; readonly hooks: { applySystemPrompt(input: HappySystemPromptHookInput, timeoutMs?: number): Promise; /** Simulates an unexpected daemon stream end for recovery tests. */ disconnect(mode?: "close" | "end" | "error"): void; }; readonly requests: readonly HappyPluginTestRequest[]; readonly rootDirectory: string; readonly tracing: { /** Simulates an unexpected daemon stream end for recovery tests. */ disconnect(mode?: "close" | "end" | "error"): void; emit(event: HappyTracingEvent): void; }; close(): Promise; } export interface CreateHappyPluginTestHostOptions { /** Receives each validated SDK request as it reaches the fake host. */ onRequest?: (request: HappyPluginTestRequest) => void; /** Parent for the short-lived host root. Defaults to the operating-system temp directory. */ temporaryDirectory?: string; } /** Starts an in-memory, Unix-socket Happy host for plugin tests and local authoring. */ export declare function createHappyPluginTestHost(seed?: HappyPluginTestSeed, options?: CreateHappyPluginTestHostOptions): Promise; //# sourceMappingURL=createHappyPluginTestHost.d.ts.map