//#region src/helpers/support-sla.d.ts type SupportSlaConfig = { enabled: boolean; firstResponseMinutes: number | null; nextResponseMinutes: number | null; }; declare const DEFAULT_SUPPORT_SLA: SupportSlaConfig; /** * Returns the target first-response due timestamp for a new conversation, * or `null` if SLA tracking is off or no target is set. */ declare function computeFirstResponseDueAt(now: Date, sla: SupportSlaConfig): Date | null; /** * Returns the target next-response due timestamp when a conversation has been * re-opened by a user reply, or `null` if SLA tracking is off or no target * is set. */ declare function computeNextResponseDueAt(now: Date, sla: SupportSlaConfig): Date | null; type SlaUrgency = "ok" | "warning" | "urgent" | "overdue"; /** * How soon (in milliseconds) before a due timestamp we switch into the * "urgent" state. Within this window the due timestamp should be rendered * with a strong alert treatment. */ declare const SLA_URGENT_THRESHOLD_MS: number; /** * How soon (in milliseconds) before a due timestamp we switch into the * "warning" state. Within this window the due timestamp should be rendered * with a subtle alert treatment so agents can notice it without being * distracted. */ declare const SLA_WARNING_THRESHOLD_MS: number; /** * Classifies how close a due timestamp is to `now` so we can subtly alert * agents as it approaches (and after it passes). * * If `windowStartedAt` is provided, thresholds scale with the total SLA * window length - so a 5-minute SLA doesn't read as "urgent" from t=0 - and * are capped by the fixed wall-clock thresholds so a 24-hour SLA doesn't * sit in "warning" for 12 hours. If `windowStartedAt` isn't known, we fall * back to the fixed wall-clock thresholds. */ declare function computeSlaUrgency(dueAt: Date, now: Date, options?: { windowStartedAt?: Date | null; }): SlaUrgency; //#endregion export { DEFAULT_SUPPORT_SLA, SLA_URGENT_THRESHOLD_MS, SLA_WARNING_THRESHOLD_MS, SlaUrgency, SupportSlaConfig, computeFirstResponseDueAt, computeNextResponseDueAt, computeSlaUrgency }; //# sourceMappingURL=support-sla.d.ts.map