import { IData } from "./db"; import { IDevice, IUser } from "./user"; import { IDataChange } from "./data-change"; import { Event } from "./events"; export type INotificationStatus = 'read' | 'dismissed'; export interface INotification extends NotificationOptions, IData { type: 'Notification'; title: string; received?: number; change?: IDataChange; status?: INotificationStatus; dontShow?: boolean; } export declare function dataChangeToNotification(change: IDataChange): INotification; export declare const events: { notificationReceived: Event; notificationClicked: Event; }; export declare function receiveNotification(notification: INotification): Promise; export declare function notifyUsers(users: IUser[], notification: INotification): Promise; export declare function notifyDevice(device: IDevice, notification: INotification, toPublicBoxKey: string): Promise; export interface INotificationPart { id: string; type: 'NotificationPart'; partNum: number; totalParts: number; data: string; ttl: number; } export declare function processWebPushNotification(serviceWorkerSelf: any, notification: string): Promise;