/** * Browser-side Web Push setup. * * Delivery and VAPID signing belong to the backend frameworks. This helper * only handles permission, service-worker registration, and subscription * serialisation so the resulting object can be sent to a Tina4 API. */ export interface PushClientOptions { /** Base64url VAPID public key issued by the backend. */ applicationServerKey: string | Uint8Array; /** Use a known registration, otherwise wait for navigator.serviceWorker.ready. */ serviceWorker?: ServiceWorkerRegistration; userVisibleOnly?: boolean; } export interface PushSubscriptionData { endpoint: string; keys: { p256dh: string; auth: string; }; } declare function decodeBase64Url(value: string): Uint8Array; declare function encodeBase64Url(value: ArrayBuffer | ArrayBufferView): string; export declare const push: { supported(): boolean; permission(): Promise; requestPermission(): Promise; subscribe(options: PushClientOptions): Promise; current(options?: Pick): Promise; unsubscribe(options?: Pick): Promise; serialize(subscription: globalThis.PushSubscription): PushSubscriptionData; /** Exposed for tests and non-browser adapters that need the Web Push key bytes. */ decodeApplicationServerKey: typeof decodeBase64Url; encodeKey: typeof encodeBase64Url; }; export {}; //# sourceMappingURL=push.d.ts.map