import { TicketsService } from './tickets.service';
import { CreateTicketDto, UpdateTicketDto, UpdateTicketStatusDto, AssignTicketDto, QueryTicketDto, CreateCommentDto, QueryCommentDto, CreateSatisfactionDto, QueryActivityDto } from './dto';
import { GroupService } from './services/group.service';
export declare class TicketsController {
    private readonly ticketsService;
    private readonly groupService;
    constructor(ticketsService: TicketsService, groupService: GroupService);
    create(createTicketDto: CreateTicketDto, req: any): Promise<import("./entities").TicketDetailResponse>;
    findAll(query: QueryTicketDto, req: any): Promise<import("./entities").PaginatedResponse<import("./entities").TicketListItemResponse>>;
    findOne(id: string, req: any): Promise<import("./entities").TicketDetailResponse>;
    update(id: string, updateTicketDto: UpdateTicketDto, req: any): Promise<import("./entities").TicketDetailResponse>;
    updateStatus(id: string, updateStatusDto: UpdateTicketStatusDto, req: any): Promise<import("./entities").TicketDetailResponse>;
    assign(id: string, assignDto: AssignTicketDto, req: any): Promise<import("./entities").TicketDetailResponse>;
    remove(id: string, req: any): Promise<{
        success: boolean;
    }>;
    getComments(id: string, query: QueryCommentDto, req: any): Promise<import("./entities").PaginatedResponse<import("./entities").CommentResponse>>;
    addComment(id: string, createCommentDto: CreateCommentDto, req: any): Promise<import("./entities").CommentResponse>;
    deleteComment(id: string, commentId: string, req: any): Promise<{
        success: boolean;
    }>;
    submitSatisfaction(id: string, satisfactionDto: CreateSatisfactionDto, req: any): Promise<import("./entities").TicketDetailResponse>;
    watch(id: string, req: any): Promise<{
        success: boolean;
        message: string;
    } | {
        success: boolean;
        message?: undefined;
    }>;
    unwatch(id: string, req: any): Promise<{
        success: boolean;
    }>;
    addWatcher(id: string, watcherId: string, req: any): Promise<{
        success: boolean;
        message: string;
    } | {
        success: boolean;
        message?: undefined;
    }>;
    removeWatcher(id: string, watcherId: string, req: any): Promise<{
        success: boolean;
    }>;
    getActivities(id: string, query: QueryActivityDto): Promise<import("./entities").PaginatedResponse<import("./entities").ActivityResponse>>;
}
