import type { SupportTicket, SupportTicketStatus, SupportTicketPriority } from '../../generated/global-types'; export type ViewMode = 'list' | 'grid' | 'compact'; export interface TicketFilters { search: string; status: SupportTicketStatus | 'all'; priority: SupportTicketPriority | 'all'; categoryId: string | null; productId: string | null; assignedToId: string | null; dateRange: { start: Date | null; end: Date | null; }; } export interface KnowledgeBaseArticleState { id: string; slug: string; title: string; excerpt?: string; categoryId?: string | null; tags?: string[]; } export interface ChatSessionState { isActive: boolean; isMinimized: boolean; queuePosition: number | null; agentTyping: boolean; } interface KBSearchState { query: string; filters: { categoryId: string | null; tags: string[]; }; results: KnowledgeBaseArticleState[]; } interface SupportState { selectedTicket: SupportTicket | null; selectedArticle: KnowledgeBaseArticleState | null; viewMode: ViewMode; ticketFilter: TicketFilters; chatSession: ChatSessionState; kbSearch: KBSearchState; unreadTicketCount: number; newMessageNotifications: Map; setSelectedTicket: (ticket: SupportTicket | null) => void; setSelectedArticle: (article: KnowledgeBaseArticleState | null) => void; setViewMode: (mode: ViewMode) => void; updateTicketFilter: (filter: Partial) => void; resetTicketFilter: () => void; startChatSession: () => void; endChatSession: () => void; minimizeChat: () => void; maximizeChat: () => void; setAgentTyping: (typing: boolean) => void; setQueuePosition: (position: number | null) => void; updateKbSearch: (query: string, filters?: Partial) => void; setKbResults: (results: KnowledgeBaseArticleState[]) => void; markTicketAsRead: (ticketId: string) => void; incrementUnreadCount: () => void; addMessageNotification: (ticketId: string) => void; clearAllNotifications: () => void; resetForContextChange: () => void; } export declare const useSupportStore: import("zustand").UseBoundStore>; export {};