import type { Notification, NotificationAction, NotificationType } from "@edenapp/types"; import { CommandRegistry, EdenEmitter, IPCBridge } from "../ipc"; import { ViewManager } from "../view-manager"; /** * Events emitted by the NotificationManager */ interface NotificationNamespaceEvents { added: { notification: Notification; }; removed: { id: string; }; "action-clicked": { notificationId: string; actionId: string; }; } export type NotificationActionCallbacks = Record void | Promise>; interface NotificationCaller { appId?: string; webContentsId?: number; } export declare class NotificationManager extends EdenEmitter { private viewManager; private notificationHandler; private idCounter; private displayProviders; private activeNotifications; constructor(ipcBridge: IPCBridge, commandRegistry: CommandRegistry, viewManager: ViewManager); /** * Generate a unique notification ID */ private generateId; private notifyNotification; registerDisplayProvider(caller: NotificationCaller): { success: boolean; }; /** * Push a notification to subscribers. * @param title - Notification title * @param message - Notification message * @param timeout - Timeout in ms. Use 0 for persistent notification (default: 5000) * @param type - Notification type for styling */ pushNotification(title: string, message: string, timeout?: number, type?: NotificationType, actions?: NotificationAction[], callbacks?: NotificationActionCallbacks, caller?: NotificationCaller): Notification; handleActionClicked(notificationId: string, actionId: string, caller?: NotificationCaller): Promise<{ success: boolean; }>; handleDismissed(notificationId: string, caller?: NotificationCaller): { success: boolean; }; dispose(): void; } export {}; //# sourceMappingURL=NotificationManager.d.ts.map