import { Signal } from '@angular/core'; import { AppVersionStatus } from './types'; import * as i0 from "@angular/core"; export declare class AppVersionService { /** SwUpdate solo existe si el SW está registrado (prod build). */ private readonly swUpdate; /** AppConfigService es opcional: la app puede no wirearlo. */ private readonly appConfig; private readonly serviceConfig; /** Plugin nativo opcional: provisto por apps Capacitor para Play Store / App Store. */ private readonly platformPlugin; /** Plugin HTTP opcional: alternativa a AppConfigService para apps sin Firebase. */ private readonly remotePlugin; private readonly document; private readonly destroyRef; /** True cuando el SW reportó un bundle nuevo listo (`VERSION_READY`). */ private readonly swUpdateReady; /** Config remota cargada por el plugin HTTP. Null hasta que carga o si no hay plugin. */ private readonly remoteConfig; /** * True cuando el usuario descartó el banner de actualización opcional. * El banner obligatorio (`update-required`) ignora este flag. */ private readonly _dismissed; readonly dismissed: Signal; /** * Versión local del build actual de la app. * Proviene del provider `provideValtechAppVersion({ currentVersion })`. */ readonly currentVersion: Signal; /** * Última versión publicada según el config remoto (AppConfigService o plugin HTTP). * `null` si ninguna fuente está disponible o aún no cargó. */ readonly latestVersion: Signal; /** * Estado de la versión: * - `update-required` — la versión local quedó por debajo de `minVersion`. Hard gate. * - `update-available` — SW bundle listo, AppConfigService o plugin HTTP detectaron versión nueva. * - `up-to-date` — en cualquier otro caso. */ readonly status: Signal; constructor(); /** * Aplica la actualización pendiente. * * Si hay un plugin de plataforma (nativo/Capacitor), delega en él (ej. Play Store). * Si no, activa la versión SW si está disponible y recarga la página. */ applyUpdate(): Promise; /** * Descarta el banner de actualización opcional. * No tiene efecto sobre el estado `update-required` (hard gate). */ dismiss(): void; /** * Fuerza un chequeo: SW + plugin HTTP (si existe). */ checkNow(): Promise; /** * Suscribe `versionUpdates`, programa chequeos periódicos y reacciona al * volver la app a foreground. Solo actúa si el SW está habilitado. */ private wireServiceWorker; /** * Carga config remota via plugin HTTP al inicio, en foreground y en el intervalo periódico. * Solo se llama si `remotePlugin` está provisto. */ private wireRemotePlugin; private loadRemoteConfig; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }