import { type Result } from '@forgeax/engine-rhi'; import { type Asset, type AssetEnvelope, AssetError, type CatalogEntry, type ResourceRevision, type RuntimeAssetBinding } from '@forgeax/engine-types'; import type { AssetRegistry } from '../asset-registry'; import { type PackageFetcher } from '../internal/package-read.js'; /** * Runtime catalog row parsed from the shared pack-index POD shape. GUID is the * catalog key, and inline assets have no source declaration to navigate. */ export type CatalogRecord = Omit & { readonly sourcePath?: string; }; /** Build the canonical row for an inline asset without inventing producer facts. */ export declare function createInlineCatalogRecord(envelope: AssetEnvelope, name: string): CatalogRecord; export declare function checkExpectedRevision(records: readonly CatalogRecord[], expectedRevision: ResourceRevision | undefined): AssetError | undefined; /** Resolve a catalog entry URL against the configured pack-index URL. */ export declare function resolveCatalogAssetUrl(registry: Pick, packageUrl: string): string; /** Parse the shared pack-index/catalog wire shape without loading payloads. */ export declare function parseCatalog(raw: unknown, resolveUrl?: (packageUrl: string) => string, expectedRevision?: ResourceRevision, expectedScope?: Pick): Result, AssetError>; /** Fetch and parse a catalog using the shared JSON/error boundary. */ export declare function fetchCatalog(url: string, fetch: PackageFetcher, resolveUrl?: (packageUrl: string) => string, expectedRevision?: ResourceRevision, expectedScope?: Pick, requestInit?: { readonly cache?: 'no-store'; }): Promise, AssetError>>; export declare function fetchPackIndex(registry: AssetRegistry): Promise, AssetError>>; //# sourceMappingURL=catalog.d.ts.map