import { type AssetReference, type ResourceLocator } from "@skenora/contracts"; import { EventHub } from "@skenora/events"; import type { ResolvedResource, ResourceAcquireOptions, ResourceDescriptor, ResourceEventMap, ResourcePolicy, ResourcePreflightResult, ResourceProvider, ResourceResolver, ResourceScope, ResourceScopeOptions, ResourceSearchPage, ResourceSearchQuery } from "./types.js"; export interface ResourceManagerOptions { providers?: readonly ResourceProvider[]; policy?: ResourcePolicy; events?: EventHub; } interface RetainedResource { readonly pending: Promise; release(): void; } export declare class ResourceManager implements ResourceResolver { #private; readonly events: EventHub; constructor(options?: ResourceManagerOptions); get providerTypes(): readonly string[]; register(provider: ResourceProvider): () => void; createScope(options?: ResourceScopeOptions): ResourceScope; search(query?: ResourceSearchQuery): Promise; describe(locator: ResourceLocator): Promise; preflight(assets: readonly Readonly[]): Promise; dispose(): void; retainAsset(asset: Readonly, options: ResourceAcquireOptions): RetainedResource; retainLocator(locator: ResourceLocator, options: ResourceAcquireOptions): RetainedResource; resolveRelative(base: Readonly, relativeUri: string): ResourceLocator; } export {}; //# sourceMappingURL=resource-manager.d.ts.map