import type { Response } from 'express';
import { JwtService } from '@nestjs/jwt';
import { ChatService } from './chat.service';
import { CreateConversationDto, SendMessageDto, QueryConversationDto } from '../dto';
export declare class ChatController {
    private readonly chatService;
    private readonly jwtService;
    constructor(chatService: ChatService, jwtService: JwtService);
    create(dto: CreateConversationDto, req: any): Promise<{
        id: any;
        userId: any;
        title: any;
        category: any;
        status: any;
        tags: any;
        createdAt: any;
        updatedAt: any;
    }>;
    findAll(query: QueryConversationDto, req: any): Promise<{
        items: {
            id: string;
            title: string | null;
            category: import("@prisma/client").$Enums.AIConversationCategory;
            status: import("@prisma/client").$Enums.AIConversationStatus;
            tags: string[];
            lastMessage: string | null;
            messageCount: number;
            createdAt: Date;
            updatedAt: Date;
        }[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
        hasNext: boolean;
        hasPrev: boolean;
    }>;
    findOne(id: string, req: any): Promise<{
        id: any;
        userId: any;
        title: any;
        category: any;
        status: any;
        tags: any;
        messages: any;
        createdAt: any;
        updatedAt: any;
    }>;
    remove(id: string, req: any): Promise<{
        success: boolean;
    }>;
    sendMessage(id: string, dto: SendMessageDto, req: any): Promise<{
        userMessage: {
            id: string;
            role: import("@prisma/client").$Enums.AIMessageRole;
            source: import("@prisma/client").$Enums.AIMessageSource;
            content: string;
            createdAt: Date;
        };
        streamUrl: string;
        aiMessageId: string;
    }>;
    streamReply(id: string, messageId: string, authorization: string, res: Response): Promise<void>;
}
