import { type Logger } from '../utils/logger.js'; import { BaseRegistry } from './BaseRegistry.js'; export interface ManagedRegistryConfig { componentName: string; idField?: keyof TDefinition & string; /** * Extract id from a full item. Takes precedence over `idField` when provided. * Required when the id field is nested (e.g. `def.info.id`). */ computeId?: (item: TDefinition) => string; logger?: Logger; } export declare class ManagedRegistry extends BaseRegistry { protected log: Logger; private idField?; private computeId?; constructor(config: ManagedRegistryConfig); register(id: string, item: TDefinition): void; register(item: TDefinition): void; register(items: TDefinition[]): void; getOrThrow(id: string): TDefinition; } //# sourceMappingURL=ManagedRegistry.d.ts.map