import { Optional } from '@sudobility/types'; interface NotificationOptions { body?: Optional; icon?: Optional; badge?: Optional; tag?: Optional; requireInteraction?: Optional; silent?: Optional; data?: Optional; actions?: Optional; timestamp?: Optional; } interface NotificationAction { action: string; title: string; icon?: Optional; } interface NotificationResult { success: boolean; error?: Optional; notificationId?: Optional; } interface NotificationPermissionResult { granted: boolean; permission: 'granted' | 'denied' | 'default'; error?: Optional; } interface NotificationService { isSupported(): boolean; getPermissionStatus(): 'granted' | 'denied' | 'default' | 'unsupported'; requestPermission(): Promise; showNotification(title: string, options?: Optional): Promise; closeNotification(notificationId: string): Promise; clearAllNotifications(): Promise; setClickHandler(handler: (data?: Optional) => void): void; hasPermission(): boolean; getCapabilities(): NotificationCapabilities; } interface NotificationCapabilities { supportsActions: boolean; supportsIcon: boolean; supportsBadge: boolean; supportsData: boolean; supportsSound: boolean; supportsVibration: boolean; maxActions?: Optional; } interface NotificationConfig { enableAutoClose: boolean; autoCloseDelay: number; defaultIcon: string; enableDebugLogging: boolean; fallbackToAlert: boolean; } interface NotificationClient { service: NotificationService; config: NotificationConfig; show(title: string, options?: Optional): Promise; requestPermissions(): Promise; } interface NotificationContextProvider { client: NotificationClient; isSupported: boolean; hasPermission: boolean; requestPermission(): Promise; } export { type NotificationOptions, type NotificationAction, type NotificationResult, type NotificationPermissionResult, type NotificationService, type NotificationCapabilities, type NotificationConfig, type NotificationClient, type NotificationContextProvider, }; //# sourceMappingURL=notification.d.ts.map