import { type AskRequestSnapshot, type AskResult, type PushSubscriptionPayload } from "../protocol.js"; import type { RequestOptions as WebPushRequestOptions } from "web-push"; import { type FcmSender } from "./fcmSender.js"; import type { PushStore } from "./pushStore.js"; import type { SessionStore } from "./sessionStore.js"; export interface PushSender { sendNotification(subscription: PushSubscriptionPayload, payload: string, options?: WebPushRequestOptions): Promise; } export declare class PushNotifier { private readonly pushStore; private readonly sessionStore; private readonly pushSender; private readonly fcmSender?; constructor(pushStore: PushStore, sessionStore: SessionStore, pushSender?: PushSender, fcmSender?: FcmSender | undefined); notifyNewPendingAsk(request: AskRequestSnapshot): Promise; /** * Data-only fanout after an ask leaves the pending state (answered, cancelled, or expired) so * clients can dismiss any still-visible notification for it. Never renders a user-facing alert. */ notifyAskResolved(result: AskResult): Promise; private notifyWebPushSubscriptions; private notifyFcmTokens; private findSession; private buildNewAskPayload; } //# sourceMappingURL=pushNotifier.d.ts.map