import { TicketService } from './ticket.service';
import { CreateAITicketDto, UpdateAITicketDto, AssignAITicketDto, ResolveAITicketDto, QueryAITicketDto } from '../dto';
export declare class TicketController {
    private readonly ticketService;
    constructor(ticketService: TicketService);
    create(dto: CreateAITicketDto, req: any): Promise<{
        id: string;
        conversationId: string;
        source: string;
        category: import("@prisma/client").$Enums.AITicketCategory;
        priority: import("@prisma/client").$Enums.AITicketPriority;
        status: import("@prisma/client").$Enums.AITicketStatus;
        title: string;
        description: string;
        assigneeId: string | null;
        assigneeTeam: import("@prisma/client").$Enums.AIAssigneeTeam | null;
        assignedAt: Date | null;
        createdAt: Date;
        conversationSummary: {
            messageCount: number;
            includedInTicket: boolean;
        };
    }>;
    findAll(query: QueryAITicketDto, req: any): Promise<{
        items: {
            id: any;
            category: any;
            priority: any;
            status: any;
            title: any;
            description: any;
            assignee: {
                id: any;
                name: string;
            } | null;
            assigneeTeam: any;
            creator: {
                id: any;
                name: string;
            };
            conversationId: any;
            createdAt: any;
            updatedAt: any;
        }[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
        hasNext: boolean;
        hasPrev: boolean;
    }>;
    findOne(id: string, req: any): Promise<{
        id: any;
        category: any;
        priority: any;
        status: any;
        title: any;
        description: any;
        assignee: {
            id: any;
            name: string;
            email: string;
        } | null;
        assigneeTeam: any;
        creator: {
            id: any;
            name: string;
        };
        conversation: {
            id: any;
            title: any;
            messages: any;
        };
        resolution: any;
        resolvedAt: any;
        createdAt: any;
        updatedAt: any;
    }>;
    update(id: string, dto: UpdateAITicketDto, req: any): Promise<{
        id: string;
        priority: import("@prisma/client").$Enums.AITicketPriority;
        assigneeId: string | null;
        assigneeTeam: import("@prisma/client").$Enums.AIAssigneeTeam | null;
        updatedAt: Date;
    }>;
    assign(id: string, dto: AssignAITicketDto, req: any): Promise<{
        id: string;
        assigneeId: string | null;
        assigneeTeam: import("@prisma/client").$Enums.AIAssigneeTeam | null;
        assignedAt: Date | null;
    }>;
    resolve(id: string, dto: ResolveAITicketDto, req: any): Promise<{
        id: string;
        status: import("@prisma/client").$Enums.AITicketStatus;
        resolution: string | null;
        resolvedAt: Date | null;
    }>;
}
