declare const STITCH_MCP_URL = "https://stitch.googleapis.com/mcp";
declare const STITCH_CONFIG_FILE: string;
export interface StitchConfig {
    apiKey: string;
    configuredAt: string;
}
export declare function loadStitchConfig(): StitchConfig | null;
export declare function saveStitchConfig(apiKey: string): void;
export declare function stitchConfigured(): boolean;
/**
 * Call the Stitch MCP server. MCP uses JSON-RPC 2.0 over HTTP. We support
 * the two methods we need:
 *
 *   tools/list   →  enumerate available tools
 *   tools/call   →  invoke a tool by name with args
 *
 * The server returns either `{ result: ... }` or `{ error: { code, message } }`.
 */
export interface McpRpcRequest {
    method: 'tools/list' | 'tools/call' | string;
    params?: Record<string, unknown>;
}
export interface McpRpcResponse {
    ok: boolean;
    result?: unknown;
    error?: {
        code?: number;
        message: string;
    };
    status?: number;
}
export declare function callStitchMcp(req: McpRpcRequest): Promise<McpRpcResponse>;
/**
 * /stitch-tools — inject a prompt that drives the agent to call tools/list
 * and pretty-print the catalog. Routes through the standard LLM tool loop
 * (async via runQuery) so we don't need to make handleSlashCommand async.
 */
export declare function buildStitchToolsPrompt(): string;
export declare function printStitchStatus(): void;
/**
 * Returns the prompt body for /stitch <query>. The model is given an intent
 * router (enhance vs assistant) and the complete Stitch MCP tool catalog
 * sourced from https://stitch.withgoogle.com/docs/mcp/reference.
 */
export declare function buildStitchPrompt(query: string): string;
export { STITCH_MCP_URL, STITCH_CONFIG_FILE };
