import { ChatAggregate } from '../../Domain/Chat/ChatAggregate';
import { ChatArchiveAggregate } from '../../Domain/Chat/ChatArchiveAggregate';
import { IChatRepository } from '../../Domain/IRepository/IChatRepository';
export declare class ChatRepository implements IChatRepository {
    private repo;
    private archiveRepo;
    constructor();
    create(chat: Partial<ChatAggregate>): Promise<Partial<ChatAggregate> & ChatAggregate>;
    findByPage(from: number, to: number): Promise<{
        chats: ChatAggregate[];
        totalCount: number;
    }>;
    findByPageIncludingDeleted(from: number, to: number): Promise<{
        chats: ChatAggregate[];
        totalCount: number;
    }>;
    findById(id: string): Promise<ChatAggregate | null>;
    findByIdIncludingDeleted(id: string): Promise<ChatAggregate | null>;
    findByUserId(userId: string): Promise<ChatAggregate[]>;
    findByUserIdIncludingDeleted(userId: string): Promise<ChatAggregate[]>;
    findByGameId(gameId: string): Promise<ChatAggregate | null>;
    findActiveChatsForUser(userId: string): Promise<ChatAggregate[]>;
    findInactiveChats(inactivityMinutes: number): Promise<ChatAggregate[]>;
    update(id: string, update: Partial<ChatAggregate>): Promise<ChatAggregate | null>;
    delete(id: string): Promise<import("typeorm").DeleteResult>;
    softDelete(id: string): Promise<ChatAggregate | null>;
    archiveChat(chat: ChatAggregate): Promise<ChatArchiveAggregate>;
    getArchivedChat(chatId: string): Promise<ChatArchiveAggregate | null>;
    restoreFromArchive(chatId: string): Promise<ChatAggregate | null>;
}
//# sourceMappingURL=ChatRepository.d.ts.map