import { Agent } from './agents'; export interface Queue { id: string; status: QueueStatus; name: string; created_by_id: string; agents: any[]; project_id: string; project_name: string; provider_accounts: any[]; model_config: ModelConfig; waiting_cases_count: number; automatic_open: string; automatic_close: string; max_waiting_time: string | null; schedule_settings: ScheduleSettings; opening_mode: string; attending_cases_count: number; idle_cases_count: number; } export type QueueSummary = Pick; export interface ModelConfig { initial_message: string; closed_message: string; num_cases_for_busy: number; time_idle: string; time_case_resolved: string; time_case_closed: string | null; time_waiting_sla_1: string; time_waiting_sla_2: string; availability_threshold_waiting_cases: number; prioritisation: string; target_sla: number; typifications: string; } export interface ScheduleSettings { timezone: string; weekly_schedule: DaySchedule[]; exceptions: ScheduleException[]; } export interface DaySchedule { day: string; time_shifts: TimeShift[]; } export interface TimeShift { start_time: Time; end_time: Time; } export interface Time { hour: number; minute: number; } export interface ScheduleException { name: string; status: string; day_of_month: number; month: number; year: number; time_shifts: TimeShift[]; } export declare enum QueueStatus { OPEN = "status_open", CLOSED = "status_closed" } export interface QueueAvailableAgent extends Pick { busy_rank: number; attending_count: number; idle_count: number; } export interface QueueListParams { project_id?: string; order?: string; cursor?: string; page_size?: number; } export interface QueueAvailabilityInfo { available: boolean; waiting_cases: number; availability_threshold_waiting_cases: number; open: boolean; name: string; available_agents: number; } export interface ProjectAvailabilityInfo { queues: QueueAvailabilityInfo[]; available: boolean; waiting_cases: number; availability_threshold_waiting_cases: number; available_agents: number; } export type AvailabilityFlags = { check_queue_schedule?: boolean; check_available_agents?: boolean; check_waiting_cases?: boolean; };