import type { Optional } from '@sudobility/types'; import type { NotificationService, NotificationOptions, NotificationResult, NotificationPermissionResult, NotificationCapabilities, NotificationConfig, NotificationClient, NotificationContextProvider } from '../notification/notification.js'; import type { PlatformNotifications } from '../notification/platform-notifications.js'; export interface RecordedNotification { id: string; title: string; options?: NotificationOptions | undefined; timestamp: number; } export declare class MockNotificationService implements NotificationService { private supported; private permission; private notifications; private clickHandler; private nextId; 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; setSupported(supported: boolean): void; setPermission(permission: 'granted' | 'denied' | 'default'): void; getNotifications(): RecordedNotification[]; getNotificationById(id: string): RecordedNotification | undefined; simulateClick(notificationId: string, data?: unknown): void; getClickHandler(): ((data?: Optional) => void) | null; reset(): void; } export declare function createMockNotificationConfig(overrides?: Partial): NotificationConfig; export declare class MockNotificationClient implements NotificationClient { service: NotificationService; config: NotificationConfig; constructor(service?: NotificationService, config?: Partial); show(title: string, options?: Optional): Promise; requestPermissions(): Promise; getMockService(): MockNotificationService | null; reset(): void; } export declare class MockNotificationContextProvider implements NotificationContextProvider { client: NotificationClient; isSupported: boolean; hasPermission: boolean; private permissionRequested; constructor(client?: NotificationClient); requestPermission(): Promise; setIsSupported(supported: boolean): void; setHasPermission(hasPermission: boolean): void; wasPermissionRequested(): boolean; getMockClient(): MockNotificationClient | null; reset(): void; } export interface RecordedPlatformNotification { title: string; message: string; type: 'info' | 'success' | 'warning' | 'error'; timestamp: number; delay?: number; } export declare class MockPlatformNotifications implements PlatformNotifications { private notifications; private scheduledNotifications; private permissionGranted; showNotification(title: string, message: string, type: 'info' | 'success' | 'warning' | 'error'): void; requestPermission(): Promise; scheduleNotification(title: string, message: string, delay: number): void; setPermissionGranted(granted: boolean): void; getNotifications(): RecordedPlatformNotification[]; getNotificationsByType(type: 'info' | 'success' | 'warning' | 'error'): RecordedPlatformNotification[]; getScheduledNotifications(): RecordedPlatformNotification[]; getLastNotification(): RecordedPlatformNotification | undefined; reset(): void; } //# sourceMappingURL=notification.mock.d.ts.map