import { NativeConfig } from './types'; export interface WebManifestIcon { src: string; sizes: string; type: string; purpose?: string; } export interface WebManifestShortcut { name: string; url: string; description?: string; } /** * Non-standard manifest member carrying this product's Web Push configuration. * * WHY THE MANIFEST: the VAPID application-server key is per Firebase PROJECT * (the fleet is split across five) and the service worker cannot read * `import.meta.env` — it is a static `public/` file, not a Vite entry. The * manifest is the per-product artefact the fleet generator ALREADY stamps from * `native.config.json`, so the key rides an existing mechanism instead of a new * build variable that has to be added to both environment blocks of 38 * `static-site-deploy.yml` files (miss one and that environment ships * `undefined` with no build error). * * The public half of a VAPID pair is client-safe: it is handed to the push * service on every subscribe. The private half stays in `confidential/`. * Unknown manifest members are ignored by the spec and by every browser. */ export interface WebManifestPushConfig { vapid_public_key: string; fcm_project?: string; } export interface WebManifestLike { id: string; name: string; short_name: string; description: string; start_url: string; scope: string; display: string; display_override: string[]; orientation: string; theme_color: string; background_color: string; icons: WebManifestIcon[]; shortcuts?: WebManifestShortcut[]; categories: string[]; lang: string; related_applications: unknown[]; prefer_related_applications: boolean; burdenoff_push?: WebManifestPushConfig; } export declare function defineWebManifest(cfg: NativeConfig, extra?: { shortcuts?: WebManifestShortcut[]; categories?: string[]; }): WebManifestLike; //# sourceMappingURL=web-manifest.d.ts.map