import type { ITicketAuditedEntity } from "./Common"; /** Whether the response is meant for a customer-visible reply, an internal note, or both. */ export declare enum QuickResponseContentType { PUBLIC = "PUBLIC", INTERNAL = "INTERNAL", BOTH = "BOTH" } /** Per-response lifecycle status. `DISABLED` keeps the response persisted and assigned to its category. */ export declare enum QuickResponseStatus { ENABLED = "ENABLED", DISABLED = "DISABLED" } /** * Fixed, closed list of supported content languages. Extending this list is a * deliberate, versioned change — a caller cannot introduce an arbitrary * locale. */ export declare enum LanguageCode { ES = "ES", EN = "EN", PT = "PT" } /** * Own category taxonomy for quick responses. A response count is intentionally * NOT part of this interface: it is DERIVED (COUNT of active responses in the * category) and never persisted. */ export interface ITicketQuickResponseCategory extends ITicketAuditedEntity { name: string; displayOrder: number; enabled: boolean; } /** * One prepared text. `applicableCategoryIds`/`applicableSubcategoryIds` point * at real `ITicketCategory` rows. `roleIds`/`groupIds`/`userIds` express * VISIBILITY only (discoverability), never extra ticket permissions. Empty * visibility arrays mean "everyone". */ export interface ITicketQuickResponse extends ITicketAuditedEntity { title: string; description?: string; categoryId: string; content: string; contentType: QuickResponseContentType; language: LanguageCode; /** Catalog variable keys referenced by `content` (e.g. `ticketNumber`, `customerName`). */ variablesUsed: string[]; applicableCategoryIds: string[]; applicableSubcategoryIds: string[]; applicableRequestTypeIds: string[]; applicablePortalIds: string[]; /** Agent-group scope dimension (mirrors `groupIds`/`roleIds`/`userIds`). */ applicableGroupIds: string[]; roleIds: string[]; groupIds: string[]; userIds: string[]; status: QuickResponseStatus; } type AuditKeys = keyof ITicketAuditedEntity; export type CreateTicketQuickResponseCategoryDto = Omit; export type UpdateTicketQuickResponseCategoryDto = Partial; export type CreateTicketQuickResponseDto = Omit; export type UpdateTicketQuickResponseDto = Partial; export {};