/** Shared fail-closed admission for canonical skill IDs. */ export type SkillIdClaim = Readonly<{ id: string; source: string; ownerAgentId?: string; }>; export declare class SkillIdCollisionError extends Error { readonly id: string; readonly existing: SkillIdClaim; readonly incoming: SkillIdClaim; constructor(existing: SkillIdClaim, incoming: SkillIdClaim); } export type SkillIdAdmissionResult = { accepted: true; } | { accepted: false; error: SkillIdCollisionError; }; /** * Tracks canonical definitions after format/root precedence has been resolved. * The second claim poisons the ID, so later claims cannot resurrect either * definition through ordering differences. */ export declare class SkillIdAdmission { #private; claim(value: SkillIdClaim): SkillIdAdmissionResult; hasClaim(id: string): boolean; isRejected(id: string): boolean; } /** Reuse one admission ledger across a staged discovery result. */ export declare function getObjectScopedSkillIdAdmission(owner: object): SkillIdAdmission; //# sourceMappingURL=id-admission.d.ts.map