import { CLIRuntimeBase } from "../cli-runtime-base.js"; import type { AgentEvent, AgentExecuteParams, McpServerConfig } from "../types.js"; /** * Gemini CLI runtime — invokes `gemini --output-format stream-json` * and maps the streaming NDJSON output to {@link AgentEvent} instances. */ export declare class GeminiCliRuntime extends CLIRuntimeBase { readonly mediaCapabilities: { readonly acceptsInbound: readonly ["image/", "audio/", "video/", "application/pdf"]; readonly emitsOutbound: false; }; private currentSessionId; private accumulatedText; private resultStats; private mediaTempDir; constructor(); protected get supportsStdinPrompt(): boolean; protected get shouldSampleRss(): boolean; execute(params: AgentExecuteParams): AsyncIterable; protected buildArgs(params: AgentExecuteParams): string[]; protected extractEvent(line: string): AgentEvent | null; protected buildEnv(_params: AgentExecuteParams): Record; private handleInit; private handleMessage; private handleToolUse; private handleToolResult; private handleError; private handleResult; private enrichDoneEvent; /** * Save media attachments to temp files and inject `@path` references into * the prompt. Gemini CLI resolves `@path` inline references natively. */ private prepareMedia; private cleanupMediaTempDir; private resetState; } /** * Manages the `.gemini/settings.json` lifecycle for MCP server configuration. * * The Gemini CLI reads MCP config from a fixed settings file hierarchy — there * is no `--mcp-config`, `--settings-dir`, or `--config` CLI flag. Project-level * settings live in `.gemini/settings.json` within the working directory. * * A `GEMINI_CONFIG_DIR` env var was requested (google-gemini/gemini-cli#2815) * but redirected to XDG spec compliance (#1825), which hasn't shipped as of * v0.11.x. Until a flag or env var exists, we use a merge-restore pattern: * * - **Setup**: read existing `.gemini/settings.json` (if any), save a copy, * merge `mcpServers` into it, write back. * - **Teardown** (always, via `finally`): restore the original file, or remove * the file/directory we created. */ export declare class GeminiMcpConfigManager { private readonly mcpServers; private readonly settingsDir; private readonly settingsPath; private originalContent; private createdFile; private createdDir; constructor(workingDirectory: string | undefined, mcpServers: Record); setup(): Promise; teardown(): Promise; }