import type { IRedisClient } from '@omnitron-dev/titan-redis'; import type { NotificationPayload, NotificationRecipient, StoredNotification } from '../../notifications.types.js'; import type { NotificationChannel } from '../channel.interface.js'; import { ChannelType, type ChannelContent, type ChannelSendResult, type ChannelHealth, type InAppContent } from '../channel.interface.js'; export interface InAppChannelOptions { keyPrefix?: string; defaultTTL?: number; maxNotificationsPerUser?: number; enableRealtime?: boolean; useStreams?: boolean; } export declare const REDIS_CLIENT: unique symbol; export declare class InAppChannel implements NotificationChannel { private readonly redis?; readonly name = "inApp"; readonly type = ChannelType.InApp; private readonly options; constructor(redis?: IRedisClient | undefined); configure(options: InAppChannelOptions): void; initialize(): Promise; shutdown(): Promise; isAvailable(): Promise; healthCheck(): Promise; validateRecipient(recipient: NotificationRecipient): boolean; formatContent(notification: NotificationPayload): InAppContent; send(recipient: NotificationRecipient, content: ChannelContent): Promise; getUnread(recipientId: string, limit?: number): Promise; getAll(recipientId: string, limit?: number): Promise; markAsRead(recipientId: string, notificationId: string): Promise; markAllAsRead(recipientId: string): Promise; dismiss(recipientId: string, notificationId: string): Promise; getCount(recipientId: string): Promise; delete(recipientId: string, notificationId: string): Promise; deleteAll(recipientId: string): Promise; private storeNotification; private publishNotification; private getNotificationsKey; private getNotificationKey; private getPubSubChannel; } //# sourceMappingURL=inapp.channel.d.ts.map