/**
 * Gemini CLI Provider — wraps Google's Gemini CLI as a Jait provider.
 *
 * Spawns `gemini` CLI with `-o stream-json` for structured NDJSON output.
 *
 * Gemini CLI stream-json events:
 *   { type: "init", session_id, model }
 *   { type: "message", role: "user"|"assistant", content, delta? }
 *   { type: "result", status: "success"|"error", stats? }
 */
import type { CliProviderAdapter, ProviderInfo, ProviderModelInfo, ProviderSession, ProviderEvent, StartSessionOptions } from "./contracts.js";
export declare class GeminiProvider implements CliProviderAdapter {
    readonly id: "gemini";
    readonly info: ProviderInfo;
    private sessions;
    private emitter;
    private geminiPath;
    checkAvailability(): Promise<boolean>;
    listModels(): Promise<ProviderModelInfo[]>;
    startSession(options: StartSessionOptions): Promise<ProviderSession>;
    sendTurn(sessionId: string, message: string, _attachments?: string[]): Promise<void>;
    interruptTurn(sessionId: string): Promise<void>;
    respondToApproval(_sessionId: string, _requestId: string, _approved: boolean): Promise<void>;
    stopSession(sessionId: string): Promise<void>;
    onEvent(handler: (event: ProviderEvent) => void): () => void;
    /**
     * Dynamically discover models from the installed gemini-cli-core package.
     * Reads dist/src/config/models.js and extracts VALID_GEMINI_MODELS + auto aliases.
     */
    private fetchModelsFromCli;
    private findGeminiModelsJs;
    private processBuffer;
    private handleEvent;
    /**
     * Emit large content in small timed chunks so the frontend renders it
     * progressively. Gemini CLI sends paragraph-sized deltas; without this
     * the entire response appears at once.
     */
    private dripFeed;
    private emit;
    private getState;
    private hasGeminiConfig;
    /**
     * Inject Jait MCP servers into the project-level .gemini/settings.json.
     * Gemini CLI reads mcpServers from <cwd>/.gemini/settings.json.
     */
    private injectMcpConfig;
    /**
     * Remove Jait-injected MCP servers from the project .gemini/settings.json on session end.
     */
    private cleanupMcpConfig;
    private testCommand;
}
//# sourceMappingURL=gemini-provider.d.ts.map