import type { ILifecycle } from '@omnitron-dev/titan/types'; import type { MessagingTransport, TransportMiddleware, NotificationHandler, DLQStats, DLQQueryOptions, DLQMessageInfo, DLQCleanupConfig } from './transport/transport.interface.js'; import type { NotificationPayload, NotificationRecipient, SendOptions, SendResult, BroadcastOptions, BroadcastResult, ScheduleResult, IRateLimiter, IPreferenceStore, IChannelRouter, StoredNotification } from './notifications.types.js'; import { ChannelRegistry } from './channel/channel-registry.js'; export declare class NotificationsService implements ILifecycle { private readonly transport; private readonly rateLimiter?; private readonly preferenceStore?; private readonly channelRouter?; private readonly channelRegistry?; constructor(transport: MessagingTransport, rateLimiter?: IRateLimiter | undefined, preferenceStore?: IPreferenceStore | undefined, channelRouter?: IChannelRouter | undefined, channelRegistry?: ChannelRegistry | undefined); send(recipient: NotificationRecipient, payload: NotificationPayload, options?: SendOptions): Promise; broadcast(recipients: NotificationRecipient[], payload: NotificationPayload, options?: BroadcastOptions): Promise; schedule(recipient: NotificationRecipient, payload: NotificationPayload, scheduledAt: Date | number, options?: SendOptions): Promise; cancel(notificationId: string): Promise; getStatus(notificationId: string): Promise; getTransport(): MessagingTransport; healthCheck(): Promise; waitUntilReady(): Promise; onInit(): Promise; onStart(): Promise; onStop(): Promise; onDestroy(): Promise; use(middleware: TransportMiddleware): void; subscribeToDLQ(handler: NotificationHandler): Promise; requeueFromDLQ(count?: number): Promise; getDLQStats(): Promise; getDLQMessages(options?: DLQQueryOptions): Promise; cleanupDLQ(): Promise; clearDLQ(): Promise; updateDLQConfig(config: Partial): void; private deliverToChannels; getUnreadNotifications(recipientId: string, limit?: number): Promise; markNotificationAsRead(recipientId: string, notificationId: string): Promise; markAllNotificationsAsRead(recipientId: string): Promise; getUnreadCount(recipientId: string): Promise; getChannelRegistry(): ChannelRegistry | undefined; getChannelsHealth(): Promise | undefined>; private generateId; private buildChannel; } export type { IRateLimiter, IPreferenceStore, IChannelRouter }; //# sourceMappingURL=notifications.service.d.ts.map