interface ToolExecutionContext { signal?: AbortSignal; } interface WebMCPTool { annotations: { readOnlyHint: boolean; untrustedContentHint: boolean; }; description: string; execute: (input: Record, context?: ToolExecutionContext) => Promise; inputSchema: Record; name: string; } export interface WebMCPContext { registerTool: (tool: WebMCPTool, options: { signal: AbortSignal; }) => Promise; } export declare const ASK_AI_QUESTION_MIN_CHARS = 2; export declare const ASK_AI_QUESTION_MAX_CHARS = 2000; export declare const createWebMCPTools: ({ ask, fetcher, location, requestTimeoutMs, }: { /** Registers `ask_ai` when provided; receives the trimmed question. */ ask?: (question: string) => void; fetcher?: typeof fetch; location: Pick; requestTimeoutMs?: number; }) => WebMCPTool[]; export declare const registerWebMCPTools: (context: WebMCPContext, tools: WebMCPTool[], onError: (error: unknown) => void) => () => void; export {}; //# sourceMappingURL=webmcp.d.ts.map