import { Holder } from './Holder.js'; import type { HolderSet } from './HolderSet.js'; import { Identifier } from './Identifier.js'; export declare class Registry { readonly key: Identifier; private readonly parser?; static readonly REGISTRY: Registry>; private readonly storage; private readonly builtin; private tags; constructor(key: Identifier, parser?: ((obj: unknown) => T) | undefined); static createAndRegister(name: string, parser?: (obj: unknown) => T): Registry; register(id: Identifier, value: T | (() => T), builtin?: boolean): Holder; delete(id: Identifier): boolean; keys(): Identifier[]; has(id: Identifier): boolean; get(id: Identifier): T | undefined; getOrThrow(id: Identifier): T & ({} | null); parse(obj: unknown): T; clear(): this; assign(other: Registry): this; cloneEmpty(): Registry; forEach(fn: (key: Identifier, value: T, registry: Registry) => void): void; map(fn: (key: Identifier, value: T, registry: Registry) => U): U[]; getTagRegistry(): Registry>; } //# sourceMappingURL=Registry.d.ts.map