import { Response } from 'express';
import { IFullUser } from 'src/modules/users/users.interface';
import { ChatFilterService } from 'src/shared/chat-guards/chat-filter/chat-filter.service';
import { ITextGenerationStreamChunk } from 'src/shared/ai-provider-contracts/types';
import { IStreamState, IStreamWordOptions } from '../interfaces/stream-response.interface';
import { IChatResponseAdapter } from '../interfaces/chat-response-adapter.interface';
export declare class StreamProcessorService {
    private readonly chatFilterService;
    private readonly logger;
    constructor(chatFilterService: ChatFilterService);
    processStreamChunk(chunk: ITextGenerationStreamChunk, state: IStreamState): IStreamState;
    checkAndStreamContent(textToCheck: string, buffer: string, fullResponse: string, user: IFullUser, wordLimit: number, res: Response, abortController: AbortController, isHebrewSettings: boolean, adapter: IChatResponseAdapter, checkType?: 'check_answer' | 'check_question', extraParams?: {
        temperature?: number;
        model?: string;
        filterVersion: {
            version: string;
            selectedFrom: 'user' | 'admin';
        };
    }, streamOptions?: IStreamWordOptions, contentType?: 'content' | 'reasoning'): Promise<{
        success: boolean;
        newBuffer: string;
        newFullResponse: string;
        blockedReason?: string;
        blockedMessage?: {
            en?: string;
            he?: string;
        };
    }>;
    streamWordsToClient(words: string[], res: Response, abortController: AbortController, adapter: IChatResponseAdapter, options?: IStreamWordOptions, withTimeout?: boolean): Promise<void>;
    streamBlockedWordsToClient(words: string[], res: Response, abortController: AbortController, adapter: IChatResponseAdapter, options?: IStreamWordOptions): Promise<void>;
    streamErrorToClient(errorMsg: string, res: Response, abortController: AbortController, adapter: IChatResponseAdapter, options?: IStreamWordOptions): Promise<void>;
    getErrorMessage(isHebrewSettings: boolean, blockedMessage?: {
        en?: string;
        he?: string;
    }, contentType?: 'content' | 'reasoning'): string;
    processReasoningChunk(reasoning: string, state: IStreamState): IStreamState;
    processAnnotationChunk(annotations: any[], state: IStreamState): IStreamState;
    processFilteredContentBuffer(textToAdd: string, buffer: string, fullResponse: string, wordLimit: number, user: IFullUser, isHebrewSettings: boolean, res: Response, abortController: AbortController, adapter: IChatResponseAdapter, checkType: 'check_answer' | 'check_question', blockedReasons: string[], filterLimitCount: {
        value: number;
    }, streamStartMarker: string, streamEndMarker: string, contentType: 'content' | 'reasoning', extraParams?: {
        temperature?: number;
        model?: string;
        filterVersion: {
            version: string;
            selectedFrom: 'user' | 'admin';
        };
    }): Promise<{
        newBuffer: string;
        newFullResponse: string;
        shouldReturn: boolean;
        returnData?: any;
    }>;
}
