/** * The platform calls this module makes, injectable so tests can supply fakes. * * Injection rather than `mock.module` on purpose: bun's module mocks are * process-global, so mocking `./web-push` here silently replaced it for * `web-push.test.ts` too and failed twenty of its assertions. A seam costs one * optional parameter; the alternative corrupts unrelated suites. */ export interface PushOptInDeps { isRealNativePlatform: () => boolean; isWebPushSupported: () => boolean; getWebPushSubscription: () => Promise; requestNativePermission: () => Promise; requestWebPermission: () => Promise; unsubscribeWeb: () => Promise; unregisterDevice: () => Promise; } /** * Install the controller and prime its state. * * Called by `bootNativeShell()`. Safe to call more than once — the registry * keeps the last registration and the listener set is module-scoped. * * @param overrides - Test seam only; production passes nothing. */ export declare function installPushOptIn(overrides?: Partial): void; /** Test seam — drop the controller and every listener. */ export declare function resetPushOptInForTests(): void; //# sourceMappingURL=push-optin.d.ts.map