UNPKG

@intuitionrobotics/push-pub-sub

Version:
34 lines (33 loc) 1.83 kB
import { Module } from "@intuitionrobotics/ts-common"; import { FirebaseType_BatchResponse, FirebaseType_Message, FirestoreTransaction } from "@intuitionrobotics/firebase/backend"; import { DB_Notifications, IFP, ISP, ITP, MessageType, Request_PushRegister, SubscribeProps } from "../../index"; import { 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; protected init(): void; 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 {};