import type { Asset, AssetDecoder, AssetDecoderLease, AssetKind, AssetLoadError, BuiltinAssetKind, BuiltinAssetPayload, PluginAssetDefinition, Result } from '@forgeax/engine-types'; import type { CatalogSource } from '../catalog-source.js'; import { type AssetGraphSnapshot } from './asset-graph.js'; import { type CatalogSessionOptions } from './catalog-session.js'; export interface AssetRegistryOptions extends CatalogSessionOptions { readonly catalog: CatalogSource; readonly fetcher?: typeof globalThis.fetch; readonly maxConcurrentReads?: number; } export interface AssetLoadOptions { readonly signal?: AbortSignal; } export type AssetRegistrySnapshot = AssetGraphSnapshot; export interface AssetRegistry { readPluginDefinition(guid: string): Promise>; installDecoder(kind: AssetKind, decoder: AssetDecoder

): AssetDecoderLease; load(guid: string, kind: K, options?: AssetLoadOptions): Promise, AssetLoadError>>; load(guid: string, kind: AssetKind, options?: AssetLoadOptions): Promise>; snapshot(): AssetRegistrySnapshot; subscribe(listener: (snapshot: AssetRegistrySnapshot) => void): () => void; dispose(): void; } /** Internal render projection; the root Registry keeps only its five actions. */ export interface AssetRegistryResolver { readonly epoch: number; lookup(guid: string): T | undefined; guidOf(asset: Asset): string | undefined; } export declare function getAssetRegistryResolver(registry: AssetRegistry): AssetRegistryResolver; export declare function createAssetRegistry(options: AssetRegistryOptions): AssetRegistry; //# sourceMappingURL=load-asset.d.ts.map