UNPKG

@intuitionrobotics/push-pub-sub

Version:
38 lines 2.06 kB
import { Module } from "@intuitionrobotics/ts-common"; import { type FirebaseType_BatchResponse, type FirebaseType_Message, FirestoreTransaction } from "@intuitionrobotics/firebase/backend"; import { type DB_Notifications, type IFP, type ISP, type ITP, type MessageType, type Request_PushRegister, type SubscribeProps } from "../../index.js"; import { type ExpressRequest } from "@intuitionrobotics/thunderstorm/backend"; type Config = { notificationsCleanupTime?: number; sessionsCleanupTime?: number; }; type TempMessages = { [token: string]: DB_Notifications[]; }; export declare class PushPubSubModule_Class extends Module<Config> { constructor(); private _pushSessions?; private _pushKeys?; private _notifications?; private _messaging?; private get session(); private get pushSessions(); private get pushKeys(); private get notifications(); private get messaging(); register(body: Request_PushRegister, request: ExpressRequest): Promise<DB_Notifications[]>; pushToKey<M extends MessageType<any, any, any> = never, S extends string = IFP<M>, P extends SubscribeProps = ISP<M>, D = ITP<M>>(key: S, props?: P, data?: D, persistent?: boolean, transaction?: FirestoreTransaction): Promise<void>; pushToUser<M extends MessageType<any, any, any> = never, _S extends string = IFP<M>, P extends SubscribeProps = ISP<M>, D = ITP<M>>(user: string, key: string, props?: P, data?: D, persistent?: boolean): Promise<void>; private buildNotification; sendMessage: (persistent: boolean, _messages: TempMessages) => Promise<{ response: FirebaseType_BatchResponse; messages: FirebaseType_Message[]; } | undefined>; readNotification: (id: string, read: boolean) => Promise<void>; scheduledCleanup: () => Promise<void>; cleanUp: (response: FirebaseType_BatchResponse, messages: FirebaseType_Message[]) => Promise<void>; private cleanUpImpl; } export declare const PushPubSubModule: PushPubSubModule_Class; export {}; //# sourceMappingURL=PushPubSubModule.d.ts.map