import type { DuplicateContribution, Registration } from '../../api/index.js'; /** How many refused registrations `duplicates()` keeps (the most recent ones). */ export declare const MAX_REPORTED_DUPLICATES = 100; /** * Keyed, ordered contributions with change notification. A second entry for a * key is refused and reported; the first registration stays. * * Registrations are not tied to a plugin's lifecycle: a contributor that can be * deactivated keeps its `dispose` handles. A route disposed and registered * again goes to the end of the list, so the list follows `dependsOn` order for * registrations made during `initialize()`. */ export declare class ContributionRegistry { private readonly keyOf; private readonly onChange; private readonly records; private readonly refused; private readonly listeners; private readonly onDuplicate; constructor(keyOf: (entry: T) => string, kind: string, onDuplicate?: (duplicate: DuplicateContribution) => void, onChange?: () => void); add(entry: T): Registration; removeKey(key: string): boolean; list(): readonly T[]; duplicates(): readonly DuplicateContribution[]; subscribe(listener: () => void): () => void; private removeRecord; private notify; } //# sourceMappingURL=contribution-registry.d.ts.map