import { CreateConversationDto } from '../chat-history.validation';
import { IFullUser } from 'src/modules/users/users.interface';
import { ChatHistory } from '../chat-history.model';
import mongoose, { Model } from 'mongoose';
import { ChatFilterService } from 'src/shared/chat-guards/chat-filter/chat-filter.service';
import { CompanyAnalyticsService } from 'src/modules/company-analytics/company-analytics.service';
import { ChatGptTextService } from 'src/shared/third-party/services/chat-gpt/services/chat-gpt-text.service';
import { UserAnalyticsService } from 'src/modules/user-analytics/user-analytics.service';
import { SubscriptionsService } from 'src/modules/subscriptions/subscriptions.service';
import { LanguageService } from 'src/shared/language/language.service';
import { IDataToReturn } from 'src/shared/language/language.interface';
import { IChatDataToReturn } from '../chat-history.interface';
import { ClaudeService } from 'src/shared/third-party/services/claude/claude.service';
import { AiModelsService } from 'src/modules/app-config/ai-models/ai-models.service';
import { SocketGuardsGateway } from 'src/shared/socket-guards/services/socket-guards.gateway';
import { GeminiService } from 'src/shared/third-party/services/gemini/gemini.service';
import { ChatGptService } from 'src/shared/third-party/services/chat-gpt/chat-gpt.service';
import { IStreamResponseObject } from '../interfaces/stream-response.interface';
interface IQueryResponse {
    success: boolean;
    answer: string;
    tokens?: number;
    fullContent?: string;
    stream?: any;
}
export declare class RealTimeDataStreamService {
    private readonly chatHistoryModel;
    private readonly connection;
    private readonly chatFilterService;
    private readonly companyAnalyticsService;
    private readonly chatGptTextService;
    private readonly claudeService;
    private readonly userAnalyticsService;
    private readonly subscriptionService;
    private readonly languageService;
    private readonly socketGateway;
    private readonly geminiService;
    private readonly chatGptService;
    private readonly aiModelsService;
    private readonly logger;
    constructor(chatHistoryModel: Model<ChatHistory>, connection: mongoose.Connection, chatFilterService: ChatFilterService, companyAnalyticsService: CompanyAnalyticsService, chatGptTextService: ChatGptTextService, claudeService: ClaudeService, userAnalyticsService: UserAnalyticsService, subscriptionService: SubscriptionsService, languageService: LanguageService, socketGateway: SocketGuardsGateway, geminiService: GeminiService, chatGptService: ChatGptService, aiModelsService: AiModelsService);
    handleRealTimeDataStream(query: string, createChatDto: CreateConversationDto, user: IFullUser, res: any, isUrl?: boolean, regenrateMessageId?: string, isRegenerate?: boolean, skipBlockedReasons?: string[]): Promise<IChatDataToReturn>;
    handleRealTimeDataStream_WithClaude(query: string, createChatDto: CreateConversationDto, user: IFullUser, res: any, isUrl?: boolean, regenerateMessageId?: string, isRegenerate?: boolean, skipBlockedReasons?: string[]): Promise<IChatDataToReturn>;
    handleRealTimeDataMessage(payload: CreateConversationDto, response: IQueryResponse, language_modification: IDataToReturn, user: IFullUser, blockedReason?: string[], regenerateMessageId?: string, isRegenerate?: boolean): Promise<IChatDataToReturn>;
    private generateNewChatHistory;
    handleRealTimeDataStream_With_Gemini(query: string, createChatDto: CreateConversationDto, user: IFullUser, res: any, isUrl?: boolean, regenerateMessageId?: string, isRegenerate?: boolean, skipBlockedReasons?: string[]): Promise<IChatDataToReturn>;
    handleRealTimeDataStreamForTesting(query: string, prompt: string, role: 'admin' | 'user', isUrl: boolean, skipBlockedReasons: string[], model: string, extraParams: {
        temperature?: number;
        model?: string;
        filterVersion: {
            version: string;
            selectedFrom: "user" | "admin";
        };
    }): Promise<{
        result: 'pass' | 'fail';
        reson: string;
        isSuccess: boolean;
    }>;
    getRealTimeDataWithGpt(query: string): Promise<IQueryResponse>;
    generateRealTimeDataResponseStream(query: string, createChatDto: CreateConversationDto, user: IFullUser, isUrl?: boolean, regenerateMessageId?: string, isRegenerate?: boolean, skipBlockedReasons?: string[]): Promise<IStreamResponseObject>;
}
export {};
