import { LikeDislikeConversationDto, UpdateConversationDto } from './chat-history.validation';
import { ChatHistory } from './chat-history.model';
import { Model } from 'mongoose';
import { IFullUser } from '../users/users.interface';
import { SocketGuardsGateway } from 'src/shared/socket-guards/services/socket-guards.gateway';
import { StorageService } from '../storage/storage.service';
import { ChatGptService } from 'src/shared/third-party/services/chat-gpt/chat-gpt.service';
export declare class ChatHistoryService {
    private readonly chatHistoryModel;
    private readonly socketGateway;
    private readonly storageService;
    private readonly chatGptService;
    private readonly logger;
    constructor(chatHistoryModel: Model<ChatHistory>, socketGateway: SocketGuardsGateway, storageService: StorageService, chatGptService: ChatGptService);
    findAllConversation(user: IFullUser, query: Record<string, unknown>): Promise<{
        data: ChatHistory[];
        meta: {
            total: number;
            page: number;
            limit: number;
        };
    }>;
    findConversationById(conversationId: string, user: IFullUser): Promise<ChatHistory>;
    private _addMemoriesToConversation;
    updateConversation(conversationId: string, updateConversationDto: UpdateConversationDto): Promise<ChatHistory>;
    handleLikeDislike(payload: LikeDislikeConversationDto, user: IFullUser): Promise<void>;
    deleteConversationById(conversationId: string, user: IFullUser): Promise<import("mongoose").Document<unknown, {}, ChatHistory, {}, {}> & ChatHistory & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }>;
    appendImageMessage(user: IFullUser, payload: {
        conversationId?: string;
        prompt: string;
        images: string[];
        imageHistoryId?: string;
        model?: string;
        aspectRatio?: string;
        style?: string;
    }): Promise<{
        conversationId: string;
    }>;
    deleteAllConversations(userId: string): Promise<any>;
    private streamText;
    getAllBlockedConversations(query: Record<string, unknown>): Promise<{
        data: any;
        meta: {
            total: any;
            page: number;
            limit: number;
            totalPages: number;
            hasMorePages: boolean;
            nextPage: number;
            previousPage: number;
        };
    }>;
    transcribeAudio(audioFile: any, user: IFullUser): Promise<{
        text: string;
    }>;
}
