/** * La vue publique : toute mutation lève au lieu d'altérer silencieusement ce que * le constructeur écrira. `add`/`delete`/`clear` sont neutralisés, l'itération et * `has` restent intacts. */ export declare const ISO6523_ICD_CODES: ReadonlySet; /** * Ce scheme peut-il légalement porter un `@schemeID` de `PartyIdentification/ID` ? * * ⚠️ Attend un code EAS **déjà canonicalisé** (`9932`, pas `GB:VAT`) : la question * porte sur l'appartenance à une liste, jamais sur l'orthographe. Passer une forme * symbolique rendrait `false` pour une raison qui n'est pas la bonne. */ export declare function isIso6523IcdCode(scheme: string): boolean; /** * Où un `cac:PartyIdentification/cbc:ID` peut apparaître, au sens de `BR-CL-10`. * * La règle discrimine par ANCÊTRE, pas seulement par code — d'où ce paramètre. */ export type PartyIdentificationContext = "AccountingSupplierParty" | "AccountingCustomerParty" | "PayeeParty"; /** * Ce scheme peut-il légalement porter le `@schemeID` d'un `PartyIdentification/ID` * dans CE contexte ? * * ⛔ `BR-CL-10` n'est PAS « le code appartient à la liste ICD ». Sa forme complète, * lue jusqu'au bout de l'assert dans `CEN-EN16931-UBL.sch` : * * ``` * (schemeID ∈ liste ICD) * OU (schemeID = 'SEPA' ET ancêtre ∈ {AccountingSupplierParty, PayeeParty}) * ``` * * ⚠️ La clause `or` vit APRÈS les 243 codes. Une extraction qui capture la liste * puis juge sur elle ne la voit jamais — c'est ainsi qu'une première version de * ce module a traité l'appartenance ICD comme toute la règle, et jeté en silence * un identifiant `SEPA` que le réseau accepte. **Être plus strict que la spec est * l'erreur symétrique de la laisser passer, pas une prudence** (GPR-1110). * * ⭐ Mesuré le 2026-08-20 : chez le BÉNÉFICIAIRE, le préjudice est réel — un * `PayeeParty` n'écrit aucun `EndpointID`, donc rien d'autre ne refuse le * document et l'identifiant disparaît sans bruit (`conformant: true` sans lui). * Chez le VENDEUR il ne l'est pas : l'`EndpointID` porte le même scheme et * `BR-CL-25`, qui ne connaît pas `SEPA`, rend le document fatal de toute façon. * La règle est appliquée telle qu'elle est écrite dans les deux cas — être fidèle * à la spec vaut mieux qu'optimiser pour ce qu'on peut observer aujourd'hui. */ export declare function canCarryPartyIdentification(scheme: string, context: PartyIdentificationContext): boolean; //# sourceMappingURL=iso6523-icd-codes.d.ts.map