import { StreamChunk, GenerateContentResponse } from '../../types';
export interface streamResponse {
    type: 'delta' | 'done' | 'completed';
    token: string;
}
export interface streamResponseComplete extends streamResponse {
    completeOutput?: string;
    thinkingOutput?: string;
    model?: string;
    usage?: {
        input_tokens?: number;
        output_tokens?: number;
        total_tokens?: number;
    };
    status?: string;
    fallback?: {
        isUsed: boolean;
        reason?: string;
    } | null;
}
export interface StreamOptions {
    onChunk?: (chunk: StreamChunk) => void;
    onComplete?: (response: GenerateContentResponse) => void;
    onError?: (error: Error) => void;
    onThinking?: (thinking: string) => void;
}
export declare class GoogleStreamProcessor {
    private decoder;
    processStream(response: Response, options?: StreamOptions): Promise<GenerateContentResponse>;
    private extractCompleteJsonObjects;
    private parseStreamChunk;
    private hasThinkingContent;
    private extractThinkingContent;
    private aggregateChunk;
    createAsyncGenerator(response: Response): AsyncGenerator<streamResponse | streamResponseComplete>;
    private extractAllCandidateText;
}
