export interface PulseManifest { updateId: string; runtimeVersion: string; createdAt: string; bundle?: PulseBundle; assets: PulseAsset[]; metadata?: Record; signature?: PulseSignature; id?: string; launchAsset?: PulseAsset; extra?: Record; } export interface PulseAsset { key?: string; hash: string; url: string; contentType: string; fileExtension?: string; } export interface PulseBundle { hash: string; url: string; contentType: string; } export interface PulseSignature { alg: string; keyId: string; sig: string; } export interface UpdateCheckResult { isAvailable: boolean; manifest?: PulseManifest; isRollback?: boolean; failedReason?: string; reason?: string; } export interface UpdateFetchResult { isNew: boolean; manifest?: PulseManifest; } export interface PulseUpdatesConfig { enabled: boolean; updateUrl: string; runtimeVersion: string; checkOnLaunch: 'ALWAYS' | 'WIFI_ONLY' | 'NEVER'; launchWaitMs: number; channel?: string; signingKeyId?: string; signingPublicKey?: string; /** * When true, manifests must carry a valid Ed25519 signature verifying against * `signingPublicKey`; unsigned or unverifiable manifests are rejected (fail-closed). * * NATIVE-CONFIG ONLY: this is read from the Info.plist / AndroidManifest * `PulseUpdatesRequireSignature` meta-data (defaults to `true` in release) and is NOT * accepted by `configure()` — setting it here has no effect. Configure signing via the * native config so a release can never silently flip to refuse-all from JS. */ requireSignature?: boolean; } export interface PulseUpdatesState { isEnabled: boolean; isChecking: boolean; isDownloading: boolean; updateId: string | null; runtimeVersion: string | null; channel: string | null; manifest: PulseManifest | null; isEmbeddedLaunch: boolean; createdAt: Date | null; lastCheckTime: Date | null; availableUpdate: PulseManifest | null; downloadedUpdate: PulseManifest | null; error: Error | null; /** * A dictionary of locally available assets for the current update. * Keys are the asset keys from the manifest, values are local file:// URLs. */ localAssets: Record | null; } //# sourceMappingURL=types.d.ts.map