import type { RecordingWorkflowNotice } from '../recording-workflow-contract.js'; import { type ReactNode } from 'react'; import type { ArkmeArrangementReminderEvent, ArkmeAiLetterItem } from '../types.js'; import type { ReactionNotification } from '../reaction-contract.js'; export type ArkmeNotificationKind = 'official' | 'arrangement' | 'reaction' | 'world' | 'ai' | 'recording'; export interface ArkmeNotificationItem { id: string; kind: ArkmeNotificationKind; title: string; preview: string; sourceLabel?: string; atMillis: number; unread: boolean; arrangement?: ArkmeArrangementReminderEvent; reaction?: ReactionNotification; recording?: RecordingWorkflowNotice; aiLetter?: ArkmeAiLetterItem; worldInteractionRef?: string; } interface NotificationSnapshot { scope: string | undefined; revision: number; ready: boolean; loading: boolean; error: string | undefined; arrangementItems: ArkmeArrangementReminderEvent[]; worldItems: ArkmeNotificationItem[]; worldUnreadCount: number; worldSeenThroughSequence: number; worldError: string | undefined; aiItems: ArkmeNotificationItem[]; aiUnreadCount: number; aiLatestUnread: ArkmeAiLetterItem | undefined; aiError: string | undefined; } export declare function reactionItem(item: ReactionNotification): ArkmeNotificationItem; declare class ArkmeNotificationStore { private snapshot; private listeners; private controller; private inflight; subscribe: (listener: () => void) => () => void; getSnapshot: () => NotificationSnapshot; private publish; refresh(scope?: string | undefined): Promise; markArrangementRead(eventRef: string, scope?: string | undefined, signal?: AbortSignal): Promise; markAllArrangementRead(): Promise; markWorldViewed(sequence?: number, scope?: string | undefined, signal?: AbortSignal): Promise; markAiRead(letterIds: readonly string[], scope?: string | undefined, signal?: AbortSignal): Promise; } export declare const arkmeNotificationStore: ArkmeNotificationStore; export declare function useArkmeNotificationSummary(): { ready: boolean; hasNotifications: boolean; unreadCount: number; preview: string; atMillis: number; }; export declare function ArkmeNotificationCenter({ preview, headerAction }?: { preview?: boolean; headerAction?: ReactNode; }): import("react").JSX.Element; export {}; //# sourceMappingURL=ArkmeNotificationCenter.d.ts.map