import { NotificationOptions, NotificationColor, NotificationGroup, NotificationConfig } from '../../../shared/types/message'; type NotificationInput = string | (NotificationOptions & { message?: string; }); type NotificationGroupListener = (groups: Record) => void; /** * Servicio de Notificaciones * * Comportamiento: * - Las notificaciones se agrupan por color (brand | neutral) * - Solo se muestra UNA notificación por grupo (la primera) * - Se mantiene un contador de notificaciones acumuladas * - El contador solo se muestra cuando > 1 * - Cada nueva notificación reinicia el timer * - Al cerrar, se descartan todas las notificaciones del grupo */ declare class NotificationService { private listeners; private idCounter; private groups; private timers; private progressIntervals; private removeTimers; /** * Muestra una notificación */ show(messageOrOptions: NotificationInput, color?: NotificationColor, options?: NotificationOptions): number; /** * Agrega una notificación al grupo correspondiente */ private addToGroup; /** * Inicia el timer para un grupo */ private startTimer; /** * Reinicia el timer para un grupo */ private resetTimer; /** * Limpia el timer de un grupo */ private clearTimer; /** * Cierra todas las notificaciones de un grupo */ dismissGroup(color: NotificationColor): void; /** * Cierra una notificación específica por ID * (En el sistema de notificaciones, esto cierra todo el grupo) */ dismiss(id: number): void; /** * Notificación de marca (brand) */ brand(messageOrOptions: NotificationInput, options?: NotificationOptions): number; /** * Notificación neutral */ neutral(messageOrOptions: NotificationInput, options?: NotificationOptions): number; /** * Configura las opciones del servicio */ configure(options: Partial): void; /** * Obtiene los grupos actuales */ getGroups(): Record; /** * Suscribirse a cambios */ subscribe(listener: NotificationGroupListener): () => void; /** * Notifica a todos los listeners */ private notifyListeners; /** * Obtiene la configuración actual */ getConfig(): NotificationConfig; } export declare const notificationService: NotificationService; export declare const useNotificationService: () => NotificationService; export {}; //# sourceMappingURL=NotificationService.d.ts.map