@intuitionrobotics/push-pub-sub
Version:
38 lines • 2.06 kB
TypeScript
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