/** * Canonical projection shared by every Arkme attention consumer. * * `unreadCount` remains the server-owned read state. Badge and notification * consumers must use the derived fields so a muted conversation never leaks * back into a red dot, Dock badge, or system notification. */ export interface ArkmeChatAttentionProjection { unreadCount: number; badgeUnreadCount: number; notificationAllowed: boolean; isMuted: boolean; } export declare function arkmeChatPolicyNotificationDisabled(policy: unknown): boolean | undefined; export declare function projectArkmeChatAttention(rawUnreadCount: unknown, policy: unknown, fallbackMuted?: boolean): ArkmeChatAttentionProjection; export declare function projectArkmeChatAttentionFromMuted(rawUnreadCount: unknown, isMuted: boolean): ArkmeChatAttentionProjection; export declare function arkmeBadgeUnreadCount(value: { unreadCount?: number; badgeUnreadCount?: number; isMuted?: boolean; notificationAllowed?: boolean; }): number; export declare function arkmeNotificationAllowed(value: { isMuted?: boolean; notificationAllowed?: boolean; }): boolean; //# sourceMappingURL=chat-attention.d.ts.map