import type { CustomRouteHandler } from './ui-http-server.js'; export declare const UI_OTA_MANIFEST_PATH = "/api/ui-ota/manifest.json"; export declare const UI_OTA_BUNDLE_PATH = "/api/ui-ota/bundle.zip"; /** Manifest the desktop shell polls to decide whether to download a new frontend. */ export interface UiOtaManifest { /** Content-addressed frontend id. Changes iff the SPA content changes. Opaque to the client. */ version: string; /** SHA-256 (hex) of the ZIP bytes — the client verifies the download against this. */ sha256: string; /** ZIP byte length. */ size: number; /** Path to fetch the bundle from (same-origin). */ url: string; } /** * Build the OTA custom-route map for the given SPA directory. Returns an empty map (OTA disabled) * when the SPA is not built. The bundle is built lazily on first request and cached for the process * lifetime. */ export declare function createOtaRoutes(spaDir: string | undefined): Record;