export declare function registerServiceWorker(path?: string): Promise; /** * Outcome of {@link subscribeToPush}. Deliberately discriminated instead of * `PushSubscription | null`: a broken VAPID key, a dead push service, or a * missing service worker must never be indistinguishable from the user * declining the permission prompt — a consumer reading `null` as "user said * no" would show a permanently dead Enable button with no trace of the real * problem. */ export type PushSubscribeResult = { status: 'subscribed'; subscription: PushSubscription; } /** The browser has no service-worker/Push API support. */ | { status: 'unsupported'; } /** The user declined (or has previously blocked) the permission prompt. */ | { status: 'denied'; } /** An operational failure: malformed VAPID key, push service down, no service worker registered (ready timed out), … */ | { status: 'error'; error: unknown; }; export declare function subscribeToPush(vapidPublicKey: string, options?: { /** * How long to wait for `serviceWorker.ready` before reporting an error. * `ready` never settles when no service worker is registered (worker file * 404s, `registerServiceWorker` never ran), which would otherwise hang the * caller forever. Default 10s. */ readyTimeoutMs?: number; }): Promise; export declare function unsubscribeFromPush(): Promise;