import { ILanguageModel, LLMCallOptions, ChatMessage, UsageStats } from '@ts-dspy/core';
export interface ModelCapabilities {
    supportsStreaming: boolean;
    supportsStructuredOutput: boolean;
    supportsFunctionCalling: boolean;
    supportsVision: boolean;
    maxContextLength: number;
    supportedFormats: string[];
}
export interface GeminiConfig {
    apiKey: string;
    model?: string;
}
export declare class GeminiLM implements ILanguageModel {
    private client;
    private config;
    private usage;
    constructor(config: GeminiConfig);
    generate(prompt: string, options?: LLMCallOptions): Promise<string>;
    generateStructured<T>(prompt: string, schema: any, options?: LLMCallOptions): Promise<T>;
    chat(messages: ChatMessage[], options?: LLMCallOptions): Promise<string>;
    getUsage(): UsageStats;
    resetUsage(): void;
    setModel(model: string): void;
    getModel(): string;
    getModelName(): string;
    getCapabilities(): ModelCapabilities;
}
