export declare enum TicketStatus {
    OPEN = "OPEN",
    ASSIGNED = "ASSIGNED",
    IN_PROGRESS = "IN_PROGRESS",
    PENDING = "PENDING",
    RESOLVED = "RESOLVED",
    CLOSED = "CLOSED",
    CANCELLED = "CANCELLED"
}
export declare enum TicketPriority {
    LOW = "LOW",
    MEDIUM = "MEDIUM",
    HIGH = "HIGH",
    URGENT = "URGENT"
}
export declare enum TicketSource {
    WEB = "WEB",
    MOBILE = "MOBILE",
    EMAIL = "EMAIL",
    API = "API",
    CHAT = "CHAT",
    PHONE = "PHONE",
    WALK_IN = "WALK_IN"
}
export declare enum CommentType {
    COMMENT = "COMMENT",
    STATUS_CHANGE = "STATUS_CHANGE",
    ASSIGNMENT = "ASSIGNMENT",
    SYSTEM = "SYSTEM",
    AI_CONTEXT = "AI_CONTEXT"
}
export declare enum VisibilityScope {
    ALL = "ALL",
    AGENT_ONLY = "AGENT_ONLY",
    GROUP_ONLY = "GROUP_ONLY",
    INTERNAL = "INTERNAL"
}
export declare class AttachmentDto {
    fileName: string;
    fileUrl: string;
    fileSize: number;
    mimeType: string;
}
export declare class CreateTicketDto {
    title: string;
    description: string;
    categoryId: string;
    priority?: TicketPriority;
    tags?: string[];
    source?: TicketSource;
    channelMetadata?: Record<string, any>;
    language?: string;
    attachments?: AttachmentDto[];
}
export declare class UpdateTicketDto {
    title?: string;
    description?: string;
    categoryId?: string;
    priority?: TicketPriority;
    tags?: string[];
    resolution?: string;
    rootCause?: string;
}
export declare class UpdateTicketStatusDto {
    status: TicketStatus;
    comment?: string;
    resolution?: string;
}
export declare class AssignTicketDto {
    assigneeId?: string;
    assigneeGroupId?: string;
    comment?: string;
}
export declare class QueryTicketDto {
    page?: number;
    limit?: number;
    status?: TicketStatus;
    statuses?: TicketStatus[];
    priority?: TicketPriority;
    categoryId?: string;
    assigneeId?: string;
    creatorId?: string;
    keyword?: string;
    startDate?: string;
    endDate?: string;
    slaBreached?: boolean;
    view?: 'my_created' | 'my_assigned' | 'my_group' | 'all';
    sortBy?: 'createdAt' | 'updatedAt' | 'priority' | 'dueAt';
    sortOrder?: 'asc' | 'desc';
}
export declare class CreateCommentDto {
    content: string;
    type?: CommentType;
    isInternal?: boolean;
    visibilityScope?: VisibilityScope;
    mentionedUserIds?: string[];
    attachments?: AttachmentDto[];
}
export declare class QueryCommentDto {
    page?: number;
    limit?: number;
}
export declare class CreateSatisfactionDto {
    rating: number;
    comment?: string;
}
export declare class UpdateWatchersDto {
    watcherIds: string[];
}
export declare class QueryActivityDto {
    page?: number;
    limit?: number;
}
