import { InstallOutcome, InstallPlatform } from './types.js'; declare class PwaInstallServiceImpl { private _listeners; private _deferredPrompt?; private _installed; private _active; constructor(); /** * Attach the window listeners. Idempotent and SSR-safe. Called from the * constructor and again from `startInit` to guarantee the listeners are in * place early enough to catch `beforeinstallprompt` (which fires once, early), * even if no component has imported the service yet. */ activate(): void; /** True when a deferred install prompt is available and not yet installed. */ get canInstall(): boolean; /** True once the app has been installed (this session) or runs standalone. */ get installed(): boolean; /** * True when the browser has an install-prompt concept at all * ("onbeforeinstallprompt", Chromium). Lets consumers distinguish * "prompt not (yet) available" from "browser cannot install" * (e.g. desktop Firefox). iOS installs via the Share sheet instead — * check isIOS separately. */ get isSupported(): boolean; /** True when the app is running in a standalone/installed display mode. */ get isStandalone(): boolean; /** * True on iOS Safari, where there is no programmatic install prompt and the * user must add the app via the Share sheet ("Add to Home Screen"). */ get isIOS(): boolean; /** How the app can be installed in the current context. */ get platform(): InstallPlatform; /** * Trigger the native install prompt. Resolves with the user's choice, or * `"unavailable"` when no deferred prompt exists (e.g. iOS or already * installed). A deferred prompt can only be used once. */ promptInstall(): Promise; /** * Subscribe to installability changes (prompt captured, installed, consumed). * @returns Unsubscribe function. */ subscribe(callback: () => void): () => void; private _handleBeforeInstallPrompt; private _handleAppInstalled; private _notifyListeners; } /** Singleton instance of the PWA install service. */ export declare const pwaInstallService: PwaInstallServiceImpl; export {}; //# sourceMappingURL=PwaInstallService.d.ts.map