import type { AgentAdapter, DetectionResult, InstallOptions, InstallReport, InstallState, Scope } from "../types.js";
export interface RunResult {
    stdout: string;
    stderr: string;
    exitCode: number;
}
export interface GeminiCliDeps {
    run: (cmd: string, args: string[]) => Promise<RunResult>;
    existsSync: (p: string) => boolean;
    readFileSync: (p: string, encoding?: BufferEncoding) => string;
    homedir: () => string;
    fetchLatestVersion: () => Promise<string | undefined>;
}
export declare function defaultGeminiCliDeps(): GeminiCliDeps;
export declare class GeminiCliAdapter implements AgentAdapter {
    readonly id = "gemini";
    readonly displayName = "Gemini CLI";
    private deps;
    constructor(deps?: GeminiCliDeps);
    supportsScopes(): Scope[];
    detect(): Promise<DetectionResult>;
    getInstallState(_scope: Scope): Promise<InstallState>;
    private manifestPath;
    private queryLocalInstallState;
    private enrichWithLatest;
    install(opts: InstallOptions): Promise<InstallReport>;
}
export declare const geminiCliAdapter: AgentAdapter;
//# sourceMappingURL=gemini-cli.d.ts.map