import { FileReference, GroundedResult, GroundingContext, LayerInterface, LayerResult, MultimodalResult } from '../core/types.js';
interface GeminiTask {
    type?: string;
    action?: string;
    prompt?: string;
    request?: string;
    input?: string;
    useSearch?: boolean;
    needsGrounding?: boolean;
    files?: FileReference[];
    model?: string;
    [key: string]: unknown;
}
export declare class GeminiCLILayer implements LayerInterface {
    private authVerifier;
    private searchCache;
    private geminiPath;
    private isInitialized;
    private readonly DEFAULT_TIMEOUT;
    private readonly DEFAULT_MODEL;
    constructor();
    initialize(): Promise<void>;
    isAvailable(): Promise<boolean>;
    canHandle(task: GeminiTask): boolean;
    execute(task: GeminiTask): Promise<LayerResult>;
    executeWithGrounding(prompt: string, context: GroundingContext): Promise<GroundedResult>;
    processFiles(files: FileReference[], prompt: string): Promise<MultimodalResult>;
    getCapabilities(): string[];
    getCost(task: GeminiTask): number;
    getEstimatedDuration(task: GeminiTask): number;
    private executeGeminiCLI;
    private extractPrompt;
    private findGeminiPath;
    private extractSources;
    getCacheStats(): import("../utils/SearchCache.js").CacheStats;
    clearCache(): Promise<void>;
    translateToEnglish(text: string, sourceLang: string): Promise<string>;
}
export {};
//# sourceMappingURL=GeminiCLILayer.d.ts.map