/** * Proxy handler for content-addressed release assets. * * Owns the `/_vf/assets/{hash}.{js|css}` prefix on the project's own domain. * Validates the hash + extension, fetches bytes from the API's public * `/release-assets/{hash}` endpoint, caches hot bytes in a small in-memory LRU, * and serves them immutable + nosniff with an allowlisted content type. * * The renderer is never involved. * * @module proxy/asset-handler */ /** True when the path is owned by the release asset prefix. */ export declare function isReleaseAssetPath(pathname: string): boolean; export interface ReleaseAssetHandlerOptions { apiBaseUrl: string; /** Injectable fetch for tests. Defaults to global fetch. */ fetchImpl?: typeof fetch; /** Bound for this caller's cold-load wait. Shared work may serve longer-lived callers. */ timeoutMs?: number; } /** * Serve a release asset for the given request URL. * * @returns a Response on the asset path, or null if the path is not an asset * path (caller should continue normal forwarding). For invalid hashes/exts a * 400 is returned; for upstream 404s a no-cache 404 is returned. */ export declare function handleReleaseAssetRequest(req: Request, url: URL, options: ReleaseAssetHandlerOptions): Promise; /** Clear the in-memory asset cache (tests / memory pressure). */ export declare function clearReleaseAssetProxyCache(): void; //# sourceMappingURL=asset-handler.d.ts.map