import * as zod from 'zod';
import { B as BaseZugferdContext, I as InferSchema, P as Profile } from '../index-ypDm5Z05.js';
import '../codelist/hybrid-document.js';
import '../codelist/filename.js';
import '../codelist/hybrid-version.js';
import '../codelist/hybrid-conformance.js';
import 'pdf-lib';
import 'fast-xml-parser';

declare const BASIC_WL: {
    id: "basic-wl";
    contextParameter: string;
    extends: ({
        id: "minimum";
        contextParameter: string;
        schema: {
            businessProcessType: {
                key: string;
                type: "string";
                required: false;
                description: string;
                xpath: string;
            };
            specificationIdentifier: {
                key: string;
                type: "string";
                required: false;
                defaultValue: string;
                description: string;
                xpath: string;
            };
            number: {
                key: string;
                type: "string";
                description: string;
                xpath: string;
            };
            typeCode: {
                key: string;
                type: ("71" | "80" | "81" | "82" | "83" | "84" | "102" | "130" | "202" | "203" | "204" | "211" | "218" | "219" | "261" | "262" | "295" | "296" | "308" | "325" | "326" | "331" | "380" | "381" | "382" | "383" | "384" | "385" | "386" | "387" | "388" | "389" | "390" | "393" | "394" | "395" | "396" | "420" | "456" | "457" | "458" | "471" | "472" | "473" | "500" | "501" | "502" | "503" | "527" | "532" | "553" | "575" | "623" | "633" | "751" | "780" | "817" | "870" | "875" | "876" | "877" | "935")[];
                description: string;
                xpath: string;
            };
            issueDate: {
                key: string;
                type: "date";
                description: string;
                xpath: string;
                additionalXml: {
                    format: {
                        key: string;
                        type: "string";
                        xpath: string;
                        defaultValue: string;
                    };
                };
                transform: {
                    input: (date: unknown) => string | undefined;
                };
            };
            transaction: {
                key: string;
                type: "object";
                description: string;
                required: false;
                shape: {
                    tradeAgreement: {
                        key: string;
                        type: "object";
                        description: string;
                        required: false;
                        shape: {
                            buyerReference: {
                                key: string;
                                type: "string";
                                description: string;
                                required: false;
                                xpath: string;
                            };
                            seller: {
                                key: string;
                                type: "object";
                                description: string;
                                shape: {
                                    name: {
                                        key: string;
                                        type: "string";
                                        description: string;
                                        xpath: string;
                                    };
                                    organization: {
                                        key: string;
                                        type: "object";
                                        description: string;
                                        required: false;
                                        shape: {
                                            registrationIdentifier: {
                                                key: string;
                                                type: "object";
                                                description: string;
                                                required: false;
                                                shape: {
                                                    value: {
                                                        type: "string";
                                                        description: string;
                                                        required: false;
                                                        xpath: string;
                                                    };
                                                    schemeIdentifier: {
                                                        type: ("0002" | "0003" | "0004" | "0005" | "0006" | "0007" | "0008" | "0009" | "0010" | "0011" | "0012" | "0013" | "0014" | "0015" | "0016" | "0017" | "0018" | "0019" | "0020" | "0021" | "0022" | "0023" | "0024" | "0025" | "0026" | "0027" | "0028" | "0029" | "0030" | "0031" | "0032" | "0033" | "0034" | "0035" | "0036" | "0037" | "0038" | "0039" | "0040" | "0041" | "0042" | "0043" | "0044" | "0045" | "0046" | "0047" | "0048" | "0049" | "0050" | "0051" | "0052" | "0053" | "0054" | "0055" | "0056" | "0057" | "0058" | "0059" | "0060" | "0061" | "0062" | "0063" | "0064" | "0065" | "0066" | "0067" | "0068" | "0069" | "0070" | "0071" | "0072" | "0073" | "0074" | "0075" | "0076" | "0077" | "0078" | "0079" | "0080" | "0081" | "0082" | "0083" | "0084" | "0085" | "0086" | "0087" | "0088" | "0089" | "0090" | "0091" | "0093" | "0094" | "0095" | "0096" | "0097" | "0098" | "0099" | "0100" | "0101" | "0102" | "0104" | "0105" | "0106" | "0107" | "0108" | "0109" | "0110" | "0111" | "0112" | "0113" | "0114" | "0115" | "0116" | "0117" | "0118" | "0119" | "0120" | "0121" | "0122" | "0123" | "0124" | "0125" | "0126" | "0127" | "0128" | "0129" | "0130" | "0131" | "0132" | "0133" | "0134" | "0135" | "0136" | "0137" | "0138" | "0139" | "0140" | "0141" | "0142" | "0143" | "0144" | "0145" | "0146" | "0147" | "0148" | "0149" | "0150" | "0151" | "0152" | "0153" | "0154" | "0155" | "0156" | "0157" | "0158" | "0159" | "0160" | "0161" | "0162" | "0163" | "0164" | "0165" | "0166" | "0167" | "0168" | "0169" | "0170" | "0171" | "0172" | "0173" | "0174" | "0175" | "0176" | "0177" | "0178" | "0179" | "0180" | "0183" | "0184" | "0185" | "0186" | "0187" | "0188" | "0189" | "0190" | "0191" | "0192" | "0193" | "0194" | "0195" | "0196" | "0197" | "0198" | "0199" | "0200" | "0201" | "0202" | "0203" | "0204" | "0205" | "0206" | "0207" | "0208" | "0209" | "0210" | "0211" | "0212" | "0213" | "0214" | "0215" | "0216" | "0217" | "0218" | "0219" | "0220" | "0221" | "0222" | "0223" | "0224" | "0225" | "0226" | "0227" | "0228" | "0229" | "0230" | "0231" | "0232" | "0233" | "0234" | "0235" | "0236" | "0237" | "0238" | "0239" | "0240")[];
                                                        description: string;
                                                        required: false;
                                                        xpath: string;
                                                    };
                                                };
                                            };
                                        };
                                    };
                                    postalAddress: {
                                        key: string;
                                        type: "object";
                                        description: string;
                                        shape: {
                                            countryCode: {
                                                key: string;
                                                type: ("AD" | "AE" | "AF" | "AG" | "AI" | "AL" | "AM" | "AO" | "AQ" | "AR" | "AS" | "AT" | "AU" | "AW" | "AX" | "AZ" | "BA" | "BB" | "BD" | "BE" | "BF" | "BG" | "BH" | "BI" | "BJ" | "BL" | "BM" | "BN" | "BO" | "BQ" | "BR" | "BS" | "BT" | "BV" | "BW" | "BY" | "BZ" | "CA" | "CC" | "CD" | "CF" | "CG" | "CH" | "CI" | "CK" | "CL" | "CM" | "CN" | "CO" | "CR" | "CU" | "CV" | "CW" | "CX" | "CY" | "CZ" | "DE" | "DJ" | "DK" | "DM" | "DO" | "DZ" | "EC" | "EE" | "EG" | "EH" | "ER" | "ES" | "ET" | "FI" | "FJ" | "FK" | "FM" | "FO" | "FR" | "GA" | "GB" | "GD" | "GE" | "GF" | "GG" | "GH" | "GI" | "GL" | "GM" | "GN" | "GP" | "GQ" | "GR" | "GS" | "GT" | "GU" | "GW" | "GY" | "HK" | "HM" | "HN" | "HR" | "HT" | "HU" | "ID" | "IE" | "IL" | "IM" | "IN" | "IO" | "IQ" | "IR" | "IS" | "IT" | "JE" | "JM" | "JO" | "JP" | "KE" | "KG" | "KH" | "KI" | "KM" | "KN" | "KP" | "KR" | "KW" | "KY" | "KZ" | "LA" | "LB" | "LC" | "LI" | "LK" | "LR" | "LS" | "LT" | "LU" | "LV" | "LY" | "MA" | "MC" | "MD" | "ME" | "MF" | "MG" | "MH" | "MK" | "ML" | "MM" | "MN" | "MO" | "MP" | "MQ" | "MR" | "MS" | "MT" | "MU" | "MV" | "MW" | "MX" | "MY" | "MZ" | "NA" | "NC" | "NE" | "NF" | "NG" | "NI" | "NL" | "NO" | "NP" | "NR" | "NU" | "NZ" | "OM" | "PA" | "PE" | "PF" | "PG" | "PH" | "PK" | "PL" | "PM" | "PN" | "PR" | "PS" | "PT" | "PW" | "PY" | "QA" | "RE" | "RO" | "RS" | "RU" | "RW" | "SA" | "SB" | "SC" | "SD" | "SE" | "SG" | "SH" | "SI" | "SJ" | "SK" | "SL" | "SM" | "SN" | "SO" | "SR" | "SS" | "ST" | "SV" | "SX" | "SY" | "SZ" | "TC" | "TD" | "TF" | "TG" | "TH" | "TJ" | "TK" | "TL" | "TM" | "TN" | "TO" | "TR" | "TT" | "TV" | "TW" | "TZ" | "UA" | "UG" | "UM" | "US" | "UY" | "UZ" | "VA" | "VC" | "VE" | "VG" | "VI" | "VN" | "VU" | "WF" | "WS" | "YE" | "YT" | "ZA" | "ZM" | "ZW" | "1A" | "XI")[];
                                                description: string;
                                                xpath: string;
                                            };
                                        };
                                    };
                                    taxRegistration: {
                                        key: string;
                                        type: "object";
                                        description: string;
                                        required: false;
                                        shape: {
                                            vatIdentifier: {
                                                key: string;
                                                type: "string";
                                                description: string;
                                                required: false;
                                                xpath: string;
                                                additionalXml: {
                                                    schemeID: {
                                                        key: string;
                                                        type: "string";
                                                        xpath: string;
                                                        defaultValue: string;
                                                    };
                                                };
                                            };
                                            localIdentifier: {
                                                key: string;
                                                type: "string";
                                                required: false;
                                                description: string;
                                                xpath: string;
                                                additionalXml: {
                                                    schemeID: {
                                                        key: string;
                                                        type: "string";
                                                        xpath: string;
                                                        defaultValue: string;
                                                    };
                                                };
                                            };
                                        };
                                    };
                                };
                            };
                            buyer: {
                                key: string;
                                type: "object";
                                description: string;
                                shape: {
                                    name: {
                                        key: string;
                                        type: "string";
                                        description: string;
                                        xpath: string;
                                    };
                                    organization: {
                                        type: "object";
                                        description: string;
                                        required: false;
                                        shape: {
                                            registrationIdentifier: {
                                                type: "object";
                                                description: string;
                                                required: false;
                                                shape: {
                                                    value: {
                                                        type: "string";
                                                        description: string;
                                                        required: false;
                                                        xpath: string;
                                                    };
                                                    schemeIdentifier: {
                                                        type: ("0002" | "0003" | "0004" | "0005" | "0006" | "0007" | "0008" | "0009" | "0010" | "0011" | "0012" | "0013" | "0014" | "0015" | "0016" | "0017" | "0018" | "0019" | "0020" | "0021" | "0022" | "0023" | "0024" | "0025" | "0026" | "0027" | "0028" | "0029" | "0030" | "0031" | "0032" | "0033" | "0034" | "0035" | "0036" | "0037" | "0038" | "0039" | "0040" | "0041" | "0042" | "0043" | "0044" | "0045" | "0046" | "0047" | "0048" | "0049" | "0050" | "0051" | "0052" | "0053" | "0054" | "0055" | "0056" | "0057" | "0058" | "0059" | "0060" | "0061" | "0062" | "0063" | "0064" | "0065" | "0066" | "0067" | "0068" | "0069" | "0070" | "0071" | "0072" | "0073" | "0074" | "0075" | "0076" | "0077" | "0078" | "0079" | "0080" | "0081" | "0082" | "0083" | "0084" | "0085" | "0086" | "0087" | "0088" | "0089" | "0090" | "0091" | "0093" | "0094" | "0095" | "0096" | "0097" | "0098" | "0099" | "0100" | "0101" | "0102" | "0104" | "0105" | "0106" | "0107" | "0108" | "0109" | "0110" | "0111" | "0112" | "0113" | "0114" | "0115" | "0116" | "0117" | "0118" | "0119" | "0120" | "0121" | "0122" | "0123" | "0124" | "0125" | "0126" | "0127" | "0128" | "0129" | "0130" | "0131" | "0132" | "0133" | "0134" | "0135" | "0136" | "0137" | "0138" | "0139" | "0140" | "0141" | "0142" | "0143" | "0144" | "0145" | "0146" | "0147" | "0148" | "0149" | "0150" | "0151" | "0152" | "0153" | "0154" | "0155" | "0156" | "0157" | "0158" | "0159" | "0160" | "0161" | "0162" | "0163" | "0164" | "0165" | "0166" | "0167" | "0168" | "0169" | "0170" | "0171" | "0172" | "0173" | "0174" | "0175" | "0176" | "0177" | "0178" | "0179" | "0180" | "0183" | "0184" | "0185" | "0186" | "0187" | "0188" | "0189" | "0190" | "0191" | "0192" | "0193" | "0194" | "0195" | "0196" | "0197" | "0198" | "0199" | "0200" | "0201" | "0202" | "0203" | "0204" | "0205" | "0206" | "0207" | "0208" | "0209" | "0210" | "0211" | "0212" | "0213" | "0214" | "0215" | "0216" | "0217" | "0218" | "0219" | "0220" | "0221" | "0222" | "0223" | "0224" | "0225" | "0226" | "0227" | "0228" | "0229" | "0230" | "0231" | "0232" | "0233" | "0234" | "0235" | "0236" | "0237" | "0238" | "0239" | "0240")[];
                                                        description: string;
                                                        required: false;
                                                        xpath: string;
                                                    };
                                                };
                                            };
                                        };
                                    };
                                };
                            };
                            associatedOrder: {
                                key: string;
                                type: "object";
                                description: string;
                                required: false;
                                shape: {
                                    purchaseOrderReference: {
                                        key: string;
                                        type: "string";
                                        description: string;
                                        required: false;
                                        xpath: string;
                                    };
                                };
                            };
                        };
                    };
                    tradeDelivery: {
                        key: string;
                        type: "object";
                        description: string;
                        xpath: string;
                        defaultValue: never[];
                        required: false;
                        shape: {};
                    };
                    tradeSettlement: {
                        key: string;
                        type: "object";
                        description: string;
                        shape: {
                            currencyCode: {
                                key: string;
                                type: ("AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOV" | "BRL" | "BSD" | "BTN" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHE" | "CHF" | "CHW" | "CLF" | "CLP" | "CNY" | "COP" | "COU" | "CRC" | "CUP" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HTG" | "HUF" | "IDR" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LYD" | "MAD" | "MDL" | "MGA" | "MKD" | "MMK" | "MNT" | "MOP" | "MRU" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SLE" | "SOS" | "SRD" | "SSP" | "STN" | "SVC" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "USN" | "UYI" | "UYU" | "UYW" | "UZS" | "VED" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XBC" | "XBD" | "XCD" | "XDR" | "XOF" | "XPD" | "XPF" | "XPT" | "XSU" | "XTS" | "XUA" | "XXX" | "YER" | "ZAR" | "ZMW" | "ZWG")[];
                                description: string;
                                xpath: string;
                            };
                            monetarySummation: {
                                key: string;
                                type: "object";
                                description: string;
                                shape: {
                                    taxBasisTotalAmount: {
                                        key: string;
                                        type: "string | number";
                                        description: string;
                                        xpath: string;
                                    };
                                    taxTotal: {
                                        key: string;
                                        type: "object";
                                        description: string;
                                        shape: {
                                            amount: {
                                                type: "string | number";
                                                description: string;
                                                required: false;
                                                xpath: string;
                                            };
                                            currencyCode: {
                                                type: ("AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOV" | "BRL" | "BSD" | "BTN" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHE" | "CHF" | "CHW" | "CLF" | "CLP" | "CNY" | "COP" | "COU" | "CRC" | "CUP" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HTG" | "HUF" | "IDR" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LYD" | "MAD" | "MDL" | "MGA" | "MKD" | "MMK" | "MNT" | "MOP" | "MRU" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SLE" | "SOS" | "SRD" | "SSP" | "STN" | "SVC" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "USN" | "UYI" | "UYU" | "UYW" | "UZS" | "VED" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XBC" | "XBD" | "XCD" | "XDR" | "XOF" | "XPD" | "XPF" | "XPT" | "XSU" | "XTS" | "XUA" | "XXX" | "YER" | "ZAR" | "ZMW" | "ZWG")[];
                                                description: string;
                                                xpath: string;
                                            };
                                        };
                                    };
                                    grandTotalAmount: {
                                        key: string;
                                        type: "string | number";
                                        description: string;
                                        xpath: string;
                                    };
                                    duePayableAmount: {
                                        key: string;
                                        type: "string | number";
                                        description: string;
                                        xpath: string;
                                    };
                                };
                            };
                        };
                    };
                };
            };
        };
        mask: {
            readonly businessProcessType: "BT-23";
            readonly specificationIdentifier: "BT-24";
            readonly number: "BT-1";
            readonly typeCode: "BT-3";
            readonly issueDate: "BT-2";
            readonly transaction: readonly ["BG-25-00", {
                readonly tradeAgreement: readonly ["BT-10-00", {
                    readonly buyerReference: "BT-10";
                    readonly seller: readonly ["BG-4", {
                        readonly name: "BT-27";
                        readonly organization: readonly ["BT-30-00", {
                            readonly registrationIdentifier: "BT-30";
                        }];
                        readonly postalAddress: readonly ["BG-5", {
                            readonly countryCode: "BT-40";
                        }];
                        readonly taxRegistration: readonly ["seller-tax-registration", {
                            readonly vatIdentifier: "BT-31";
                            readonly localIdentifier: "BT-32";
                        }];
                    }];
                    readonly buyer: readonly ["BG-7", {
                        readonly name: "BT-44";
                        readonly organization: readonly ["BT-47-00", {
                            readonly registrationIdentifier: "BT-47";
                        }];
                    }];
                    readonly associatedOrder: readonly ["BT-13-00", {
                        readonly purchaseOrderReference: "BT-13";
                    }];
                }];
                readonly tradeDelivery: "BG-13-00";
                readonly tradeSettlement: readonly ["BG-19", {
                    readonly currencyCode: "BT-5";
                    readonly monetarySummation: readonly ["BG-22", {
                        readonly taxBasisTotalAmount: "BT-109";
                        readonly taxTotal: "BT-110";
                        readonly grandTotalAmount: "BT-112";
                        readonly duePayableAmount: "BT-115";
                    }];
                }];
            }];
        };
        xsdPath: () => string;
        conformanceLevel: "MINIMUM";
        documentFileName: "factur-x.xml";
        documentType: "INVOICE";
        version: "1.0";
    } & {
        parse: (ctx: {
            context: BaseZugferdContext;
            data: InferSchema<Profile>;
        }) => any;
        validate: (data: string | Buffer<ArrayBufferLike> | {
            file: string;
        }) => Promise<boolean>;
    })[];
    schema: {
        specificationIdentifier: {
            key: string;
            type: "string";
            required: false;
            defaultValue: string;
        };
        includedNote: {
            key: string;
            type: "object[]";
            description: string;
            required: false;
            group: "notes";
            shape: {
                content: {
                    key: string;
                    type: "string";
                    description: string;
                    xpath: string;
                };
                subjectCode: {
                    key: string;
                    type: ("AED" | "AFN" | "ALL" | "ARS" | "BAM" | "BMD" | "CLP" | "EUR" | "AAA" | "AAB" | "AAC" | "AAD" | "AAE" | "AAF" | "AAG" | "AAI" | "AAJ" | "AAK" | "AAL" | "AAM" | "AAO" | "AAP" | "ADD" | "IND" | "PRF" | "SUR" | "AAN" | "AAQ" | "AAR" | "AAS" | "AAT" | "AAU" | "AAV" | "AAW" | "AAX" | "AAY" | "AAZ" | "ABA" | "ABB" | "ABC" | "ABD" | "ABE" | "ABF" | "ABG" | "ABH" | "ABI" | "ABJ" | "ABK" | "ABL" | "ABM" | "ABN" | "ABO" | "ABP" | "ABQ" | "ABR" | "ABS" | "ABT" | "ABU" | "ABV" | "ABW" | "ABX" | "ABZ" | "ACA" | "ACB" | "ACC" | "ACD" | "ACE" | "ACF" | "ACG" | "ACH" | "ACI" | "ACJ" | "ACK" | "ACL" | "ACM" | "ACN" | "ACO" | "ACP" | "ACQ" | "ACR" | "ACS" | "ACT" | "ACU" | "ACV" | "ACW" | "ACX" | "ACY" | "ACZ" | "ADA" | "ADB" | "ADC" | "ADE" | "ADF" | "ADG" | "ADH" | "ADI" | "ADJ" | "ADK" | "ADL" | "ADM" | "ADN" | "ADO" | "ADP" | "ADQ" | "ADR" | "ADS" | "ADT" | "ADU" | "ADV" | "ADW" | "ADX" | "ADY" | "ADZ" | "AEA" | "AEB" | "AEC" | "AEE" | "AEF" | "AEG" | "AEH" | "AEI" | "AEJ" | "AEK" | "AEL" | "AEM" | "AEN" | "AEO" | "AEP" | "AEQ" | "AER" | "AES" | "AET" | "AEU" | "AEV" | "AEW" | "AEX" | "AEY" | "AEZ" | "AFA" | "AFB" | "AFC" | "AFD" | "AFE" | "AFF" | "AFG" | "AFH" | "AFI" | "AFJ" | "AFK" | "AFL" | "AFM" | "AFO" | "AFP" | "AFQ" | "AFR" | "AFS" | "AFT" | "AFU" | "AFV" | "AFW" | "AFX" | "AFY" | "AFZ" | "AGA" | "AGB" | "AGC" | "AGD" | "AGE" | "AGF" | "AGG" | "AGH" | "AGI" | "AGJ" | "AGK" | "AGL" | "AGM" | "AGN" | "AGO" | "AGP" | "AGQ" | "AGR" | "AGS" | "AGT" | "AGU" | "AGV" | "AGW" | "AGX" | "AGY" | "AGZ" | "AHA" | "AHB" | "AHC" | "AHD" | "AHE" | "AHF" | "AHG" | "AHH" | "AHI" | "AHJ" | "AHK" | "AHL" | "AHM" | "AHN" | "AHO" | "AHP" | "AHQ" | "AHR" | "AHS" | "AHT" | "AHU" | "AHV" | "AHW" | "AHX" | "AHY" | "AHZ" | "AIA" | "AIB" | "AIC" | "AID" | "AIE" | "AIF" | "AIG" | "AIH" | "AII" | "AIJ" | "AIK" | "AIL" | "AIM" | "AIN" | "AIO" | "AIP" | "AIQ" | "AIR" | "AIS" | "AIT" | "AIU" | "AIV" | "AIW" | "AIX" | "AIY" | "AIZ" | "AJA" | "AJB" | "ALC" | "ALD" | "ALE" | "ALF" | "ALG" | "ALH" | "ALI" | "ALJ" | "ALK" | "ALM" | "ALN" | "ALO" | "ALP" | "ALQ" | "ARR" | "AUT" | "AUU" | "AUV" | "AUW" | "AUX" | "AUY" | "AUZ" | "AVA" | "AVB" | "AVC" | "AVD" | "AVE" | "AVF" | "BAG" | "BAH" | "BAI" | "BAJ" | "BAK" | "BAL" | "BAN" | "BAO" | "BAP" | "BAQ" | "BAR" | "BAS" | "BAT" | "BAU" | "BAV" | "BAW" | "BAX" | "BAY" | "BAZ" | "BBA" | "BBB" | "BLC" | "BLD" | "BLE" | "BLF" | "BLG" | "BLH" | "BLI" | "BLJ" | "BLK" | "BLL" | "BLM" | "BLN" | "BLO" | "BLP" | "BLQ" | "BLR" | "BLS" | "BLT" | "BLU" | "BLV" | "BLW" | "BLX" | "BLY" | "BLZ" | "BMA" | "BMB" | "BMC" | "BME" | "BMF" | "BMG" | "BMH" | "CCI" | "CCJ" | "CCK" | "CCL" | "CCM" | "CCN" | "CCO" | "CEX" | "CHG" | "CIP" | "CLR" | "COI" | "CUR" | "CUS" | "DAR" | "DCL" | "DEL" | "DIN" | "DOC" | "DUT" | "FBC" | "GBL" | "GEN" | "GS7" | "HAN" | "HAZ" | "ICN" | "IIN" | "IMI" | "INS" | "INV" | "IRP" | "ITR" | "ITS" | "LAN" | "LIN" | "LOI" | "MCO" | "MDH" | "MKS" | "ORI" | "OSI" | "PAC" | "PAI" | "PAY" | "PKG" | "PKT" | "PMD" | "PMT" | "PRD" | "PRI" | "PUR" | "QIN" | "QQD" | "QUT" | "RAH" | "REG" | "RET" | "REV" | "RQR" | "SAF" | "SIC" | "SIN" | "SLR" | "SPA" | "SPG" | "SPH" | "SPP" | "SPT" | "SRN" | "SSR" | "TCA" | "TDT" | "TRA" | "TRR" | "TXD" | "WHI" | "ZZZ")[];
                    description: string;
                    required: false;
                    xpath: string;
                };
            };
        };
        transaction: {
            key: string;
            type: "object";
            shape: {
                tradeAgreement: {
                    key: string;
                    type: "object";
                    shape: {
                        associatedContract: {
                            key: string;
                            type: "object";
                            description: string;
                            required: false;
                            shape: {
                                reference: {
                                    key: string;
                                    type: "string";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                            };
                        };
                        seller: {
                            type: "object";
                            shape: {
                                identifier: {
                                    key: string;
                                    type: "string[]";
                                    description: string;
                                    required: false;
                                    group: "seller-id";
                                    xpath: string;
                                };
                                globalIdentifier: {
                                    key: string;
                                    type: "object";
                                    description: string;
                                    required: false;
                                    shape: {
                                        value: {
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        schemeIdentifier: {
                                            type: ("0002" | "0003" | "0004" | "0005" | "0006" | "0007" | "0008" | "0009" | "0010" | "0011" | "0012" | "0013" | "0014" | "0015" | "0016" | "0017" | "0018" | "0019" | "0020" | "0021" | "0022" | "0023" | "0024" | "0025" | "0026" | "0027" | "0028" | "0029" | "0030" | "0031" | "0032" | "0033" | "0034" | "0035" | "0036" | "0037" | "0038" | "0039" | "0040" | "0041" | "0042" | "0043" | "0044" | "0045" | "0046" | "0047" | "0048" | "0049" | "0050" | "0051" | "0052" | "0053" | "0054" | "0055" | "0056" | "0057" | "0058" | "0059" | "0060" | "0061" | "0062" | "0063" | "0064" | "0065" | "0066" | "0067" | "0068" | "0069" | "0070" | "0071" | "0072" | "0073" | "0074" | "0075" | "0076" | "0077" | "0078" | "0079" | "0080" | "0081" | "0082" | "0083" | "0084" | "0085" | "0086" | "0087" | "0088" | "0089" | "0090" | "0091" | "0093" | "0094" | "0095" | "0096" | "0097" | "0098" | "0099" | "0100" | "0101" | "0102" | "0104" | "0105" | "0106" | "0107" | "0108" | "0109" | "0110" | "0111" | "0112" | "0113" | "0114" | "0115" | "0116" | "0117" | "0118" | "0119" | "0120" | "0121" | "0122" | "0123" | "0124" | "0125" | "0126" | "0127" | "0128" | "0129" | "0130" | "0131" | "0132" | "0133" | "0134" | "0135" | "0136" | "0137" | "0138" | "0139" | "0140" | "0141" | "0142" | "0143" | "0144" | "0145" | "0146" | "0147" | "0148" | "0149" | "0150" | "0151" | "0152" | "0153" | "0154" | "0155" | "0156" | "0157" | "0158" | "0159" | "0160" | "0161" | "0162" | "0163" | "0164" | "0165" | "0166" | "0167" | "0168" | "0169" | "0170" | "0171" | "0172" | "0173" | "0174" | "0175" | "0176" | "0177" | "0178" | "0179" | "0180" | "0183" | "0184" | "0185" | "0186" | "0187" | "0188" | "0189" | "0190" | "0191" | "0192" | "0193" | "0194" | "0195" | "0196" | "0197" | "0198" | "0199" | "0200" | "0201" | "0202" | "0203" | "0204" | "0205" | "0206" | "0207" | "0208" | "0209" | "0210" | "0211" | "0212" | "0213" | "0214" | "0215" | "0216" | "0217" | "0218" | "0219" | "0220" | "0221" | "0222" | "0223" | "0224" | "0225" | "0226" | "0227" | "0228" | "0229" | "0230" | "0231" | "0232" | "0233" | "0234" | "0235" | "0236" | "0237" | "0238" | "0239" | "0240")[];
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                    };
                                };
                                organization: {
                                    type: "object";
                                    required: false;
                                    shape: {
                                        tradingName: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                    };
                                };
                                postalAddress: {
                                    type: "object";
                                    shape: {
                                        postCode: {
                                            key: string;
                                            type: "string | number";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        line1: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        line2: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        line3: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        city: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        countrySubdivision: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                    };
                                };
                                electronicAddress: {
                                    key: string;
                                    type: "object";
                                    description: string;
                                    required: false;
                                    shape: {
                                        value: {
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        schemeIdentifier: {
                                            type: ("AQ" | "AS" | "AU" | "0002" | "0007" | "0009" | "0037" | "0060" | "0088" | "0096" | "0097" | "0106" | "0130" | "0135" | "0142" | "0147" | "0151" | "0154" | "0158" | "0170" | "0177" | "0183" | "0184" | "0188" | "0190" | "0191" | "0192" | "0193" | "0194" | "0195" | "0196" | "0198" | "0199" | "0200" | "0201" | "0202" | "0203" | "0204" | "0205" | "0208" | "0209" | "0210" | "0211" | "0212" | "0213" | "0215" | "0216" | "0217" | "0218" | "0221" | "0225" | "0230" | "0235" | "0240" | "9910" | "9913" | "9914" | "9915" | "9918" | "9919" | "9920" | "9922" | "9923" | "9924" | "9925" | "9926" | "9927" | "9928" | "9929" | "9930" | "9931" | "9932" | "9933" | "9934" | "9935" | "9936" | "9937" | "9938" | "9939" | "9940" | "9941" | "9942" | "9943" | "9944" | "9945" | "9946" | "9947" | "9948" | "9949" | "9950" | "9951" | "9952" | "9953" | "9957" | "9959" | "AN" | "EM")[];
                                            description: string;
                                            xpath: string;
                                        };
                                    };
                                };
                            };
                        };
                        sellerTaxRepresentative: {
                            key: string;
                            type: "object";
                            description: string;
                            required: false;
                            shape: {
                                name: {
                                    key: string;
                                    type: "string";
                                    description: string;
                                    xpath: string;
                                };
                                postalAddress: {
                                    key: string;
                                    type: "object";
                                    description: string;
                                    shape: {
                                        postCode: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        line1: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        line2: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        line3: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        city: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        countryCode: {
                                            key: string;
                                            type: ("AD" | "AE" | "AF" | "AG" | "AI" | "AL" | "AM" | "AO" | "AQ" | "AR" | "AS" | "AT" | "AU" | "AW" | "AX" | "AZ" | "BA" | "BB" | "BD" | "BE" | "BF" | "BG" | "BH" | "BI" | "BJ" | "BL" | "BM" | "BN" | "BO" | "BQ" | "BR" | "BS" | "BT" | "BV" | "BW" | "BY" | "BZ" | "CA" | "CC" | "CD" | "CF" | "CG" | "CH" | "CI" | "CK" | "CL" | "CM" | "CN" | "CO" | "CR" | "CU" | "CV" | "CW" | "CX" | "CY" | "CZ" | "DE" | "DJ" | "DK" | "DM" | "DO" | "DZ" | "EC" | "EE" | "EG" | "EH" | "ER" | "ES" | "ET" | "FI" | "FJ" | "FK" | "FM" | "FO" | "FR" | "GA" | "GB" | "GD" | "GE" | "GF" | "GG" | "GH" | "GI" | "GL" | "GM" | "GN" | "GP" | "GQ" | "GR" | "GS" | "GT" | "GU" | "GW" | "GY" | "HK" | "HM" | "HN" | "HR" | "HT" | "HU" | "ID" | "IE" | "IL" | "IM" | "IN" | "IO" | "IQ" | "IR" | "IS" | "IT" | "JE" | "JM" | "JO" | "JP" | "KE" | "KG" | "KH" | "KI" | "KM" | "KN" | "KP" | "KR" | "KW" | "KY" | "KZ" | "LA" | "LB" | "LC" | "LI" | "LK" | "LR" | "LS" | "LT" | "LU" | "LV" | "LY" | "MA" | "MC" | "MD" | "ME" | "MF" | "MG" | "MH" | "MK" | "ML" | "MM" | "MN" | "MO" | "MP" | "MQ" | "MR" | "MS" | "MT" | "MU" | "MV" | "MW" | "MX" | "MY" | "MZ" | "NA" | "NC" | "NE" | "NF" | "NG" | "NI" | "NL" | "NO" | "NP" | "NR" | "NU" | "NZ" | "OM" | "PA" | "PE" | "PF" | "PG" | "PH" | "PK" | "PL" | "PM" | "PN" | "PR" | "PS" | "PT" | "PW" | "PY" | "QA" | "RE" | "RO" | "RS" | "RU" | "RW" | "SA" | "SB" | "SC" | "SD" | "SE" | "SG" | "SH" | "SI" | "SJ" | "SK" | "SL" | "SM" | "SN" | "SO" | "SR" | "SS" | "ST" | "SV" | "SX" | "SY" | "SZ" | "TC" | "TD" | "TF" | "TG" | "TH" | "TJ" | "TK" | "TL" | "TM" | "TN" | "TO" | "TR" | "TT" | "TV" | "TW" | "TZ" | "UA" | "UG" | "UM" | "US" | "UY" | "UZ" | "VA" | "VC" | "VE" | "VG" | "VI" | "VN" | "VU" | "WF" | "WS" | "YE" | "YT" | "ZA" | "ZM" | "ZW" | "1A" | "XI")[];
                                            description: string;
                                            xpath: string;
                                        };
                                        countrySubdivision: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                    };
                                };
                                taxRegistration: {
                                    key: string;
                                    type: "object";
                                    description: string;
                                    required: false;
                                    shape: {
                                        vatIdentifier: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            xpath: string;
                                            additionalXml: {
                                                schemeID: {
                                                    key: string;
                                                    type: "string";
                                                    xpath: string;
                                                    defaultValue: string;
                                                };
                                            };
                                        };
                                    };
                                };
                            };
                        };
                        buyer: {
                            type: "object";
                            shape: {
                                identifier: {
                                    key: string;
                                    type: "string";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                globalIdentifier: {
                                    key: string;
                                    type: "object";
                                    description: string;
                                    required: false;
                                    shape: {
                                        value: {
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        schemeIdentifier: {
                                            type: ("0002" | "0003" | "0004" | "0005" | "0006" | "0007" | "0008" | "0009" | "0010" | "0011" | "0012" | "0013" | "0014" | "0015" | "0016" | "0017" | "0018" | "0019" | "0020" | "0021" | "0022" | "0023" | "0024" | "0025" | "0026" | "0027" | "0028" | "0029" | "0030" | "0031" | "0032" | "0033" | "0034" | "0035" | "0036" | "0037" | "0038" | "0039" | "0040" | "0041" | "0042" | "0043" | "0044" | "0045" | "0046" | "0047" | "0048" | "0049" | "0050" | "0051" | "0052" | "0053" | "0054" | "0055" | "0056" | "0057" | "0058" | "0059" | "0060" | "0061" | "0062" | "0063" | "0064" | "0065" | "0066" | "0067" | "0068" | "0069" | "0070" | "0071" | "0072" | "0073" | "0074" | "0075" | "0076" | "0077" | "0078" | "0079" | "0080" | "0081" | "0082" | "0083" | "0084" | "0085" | "0086" | "0087" | "0088" | "0089" | "0090" | "0091" | "0093" | "0094" | "0095" | "0096" | "0097" | "0098" | "0099" | "0100" | "0101" | "0102" | "0104" | "0105" | "0106" | "0107" | "0108" | "0109" | "0110" | "0111" | "0112" | "0113" | "0114" | "0115" | "0116" | "0117" | "0118" | "0119" | "0120" | "0121" | "0122" | "0123" | "0124" | "0125" | "0126" | "0127" | "0128" | "0129" | "0130" | "0131" | "0132" | "0133" | "0134" | "0135" | "0136" | "0137" | "0138" | "0139" | "0140" | "0141" | "0142" | "0143" | "0144" | "0145" | "0146" | "0147" | "0148" | "0149" | "0150" | "0151" | "0152" | "0153" | "0154" | "0155" | "0156" | "0157" | "0158" | "0159" | "0160" | "0161" | "0162" | "0163" | "0164" | "0165" | "0166" | "0167" | "0168" | "0169" | "0170" | "0171" | "0172" | "0173" | "0174" | "0175" | "0176" | "0177" | "0178" | "0179" | "0180" | "0183" | "0184" | "0185" | "0186" | "0187" | "0188" | "0189" | "0190" | "0191" | "0192" | "0193" | "0194" | "0195" | "0196" | "0197" | "0198" | "0199" | "0200" | "0201" | "0202" | "0203" | "0204" | "0205" | "0206" | "0207" | "0208" | "0209" | "0210" | "0211" | "0212" | "0213" | "0214" | "0215" | "0216" | "0217" | "0218" | "0219" | "0220" | "0221" | "0222" | "0223" | "0224" | "0225" | "0226" | "0227" | "0228" | "0229" | "0230" | "0231" | "0232" | "0233" | "0234" | "0235" | "0236" | "0237" | "0238" | "0239" | "0240")[];
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                    };
                                };
                                postalAddress: {
                                    key: string;
                                    type: "object";
                                    shape: {
                                        postCode: {
                                            key: string;
                                            type: "string | number";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        line1: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        line2: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        line3: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        city: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        countryCode: {
                                            key: string;
                                            type: ("AD" | "AE" | "AF" | "AG" | "AI" | "AL" | "AM" | "AO" | "AQ" | "AR" | "AS" | "AT" | "AU" | "AW" | "AX" | "AZ" | "BA" | "BB" | "BD" | "BE" | "BF" | "BG" | "BH" | "BI" | "BJ" | "BL" | "BM" | "BN" | "BO" | "BQ" | "BR" | "BS" | "BT" | "BV" | "BW" | "BY" | "BZ" | "CA" | "CC" | "CD" | "CF" | "CG" | "CH" | "CI" | "CK" | "CL" | "CM" | "CN" | "CO" | "CR" | "CU" | "CV" | "CW" | "CX" | "CY" | "CZ" | "DE" | "DJ" | "DK" | "DM" | "DO" | "DZ" | "EC" | "EE" | "EG" | "EH" | "ER" | "ES" | "ET" | "FI" | "FJ" | "FK" | "FM" | "FO" | "FR" | "GA" | "GB" | "GD" | "GE" | "GF" | "GG" | "GH" | "GI" | "GL" | "GM" | "GN" | "GP" | "GQ" | "GR" | "GS" | "GT" | "GU" | "GW" | "GY" | "HK" | "HM" | "HN" | "HR" | "HT" | "HU" | "ID" | "IE" | "IL" | "IM" | "IN" | "IO" | "IQ" | "IR" | "IS" | "IT" | "JE" | "JM" | "JO" | "JP" | "KE" | "KG" | "KH" | "KI" | "KM" | "KN" | "KP" | "KR" | "KW" | "KY" | "KZ" | "LA" | "LB" | "LC" | "LI" | "LK" | "LR" | "LS" | "LT" | "LU" | "LV" | "LY" | "MA" | "MC" | "MD" | "ME" | "MF" | "MG" | "MH" | "MK" | "ML" | "MM" | "MN" | "MO" | "MP" | "MQ" | "MR" | "MS" | "MT" | "MU" | "MV" | "MW" | "MX" | "MY" | "MZ" | "NA" | "NC" | "NE" | "NF" | "NG" | "NI" | "NL" | "NO" | "NP" | "NR" | "NU" | "NZ" | "OM" | "PA" | "PE" | "PF" | "PG" | "PH" | "PK" | "PL" | "PM" | "PN" | "PR" | "PS" | "PT" | "PW" | "PY" | "QA" | "RE" | "RO" | "RS" | "RU" | "RW" | "SA" | "SB" | "SC" | "SD" | "SE" | "SG" | "SH" | "SI" | "SJ" | "SK" | "SL" | "SM" | "SN" | "SO" | "SR" | "SS" | "ST" | "SV" | "SX" | "SY" | "SZ" | "TC" | "TD" | "TF" | "TG" | "TH" | "TJ" | "TK" | "TL" | "TM" | "TN" | "TO" | "TR" | "TT" | "TV" | "TW" | "TZ" | "UA" | "UG" | "UM" | "US" | "UY" | "UZ" | "VA" | "VC" | "VE" | "VG" | "VI" | "VN" | "VU" | "WF" | "WS" | "YE" | "YT" | "ZA" | "ZM" | "ZW" | "1A" | "XI")[];
                                            description: string;
                                            xpath: string;
                                        };
                                        countrySubdivision: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                    };
                                };
                                electronicAddress: {
                                    key: string;
                                    type: "object";
                                    description: string;
                                    required: false;
                                    shape: {
                                        value: {
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        schemeIdentifier: {
                                            type: ("AQ" | "AS" | "AU" | "0002" | "0007" | "0009" | "0037" | "0060" | "0088" | "0096" | "0097" | "0106" | "0130" | "0135" | "0142" | "0147" | "0151" | "0154" | "0158" | "0170" | "0177" | "0183" | "0184" | "0188" | "0190" | "0191" | "0192" | "0193" | "0194" | "0195" | "0196" | "0198" | "0199" | "0200" | "0201" | "0202" | "0203" | "0204" | "0205" | "0208" | "0209" | "0210" | "0211" | "0212" | "0213" | "0215" | "0216" | "0217" | "0218" | "0221" | "0225" | "0230" | "0235" | "0240" | "9910" | "9913" | "9914" | "9915" | "9918" | "9919" | "9920" | "9922" | "9923" | "9924" | "9925" | "9926" | "9927" | "9928" | "9929" | "9930" | "9931" | "9932" | "9933" | "9934" | "9935" | "9936" | "9937" | "9938" | "9939" | "9940" | "9941" | "9942" | "9943" | "9944" | "9945" | "9946" | "9947" | "9948" | "9949" | "9950" | "9951" | "9952" | "9953" | "9957" | "9959" | "AN" | "EM")[];
                                            description: string;
                                            xpath: string;
                                        };
                                    };
                                };
                                taxRegistration: {
                                    key: string;
                                    type: "object";
                                    description: string;
                                    required: false;
                                    shape: {
                                        vatIdentifier: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                            additionalXml: {
                                                schemeID: {
                                                    key: string;
                                                    type: "string";
                                                    xpath: string;
                                                    defaultValue: string;
                                                };
                                            };
                                        };
                                    };
                                };
                            };
                        };
                    };
                };
                tradeDelivery: {
                    key: string;
                    type: "object";
                    shape: {
                        shipTo: {
                            key: string;
                            type: "object";
                            description: string;
                            required: false;
                            shape: {
                                identifier: {
                                    key: string;
                                    type: "string";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                globalIdentifier: {
                                    key: string;
                                    type: "object";
                                    description: string;
                                    required: false;
                                    shape: {
                                        value: {
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        schemeIdentifier: {
                                            type: ("0002" | "0003" | "0004" | "0005" | "0006" | "0007" | "0008" | "0009" | "0010" | "0011" | "0012" | "0013" | "0014" | "0015" | "0016" | "0017" | "0018" | "0019" | "0020" | "0021" | "0022" | "0023" | "0024" | "0025" | "0026" | "0027" | "0028" | "0029" | "0030" | "0031" | "0032" | "0033" | "0034" | "0035" | "0036" | "0037" | "0038" | "0039" | "0040" | "0041" | "0042" | "0043" | "0044" | "0045" | "0046" | "0047" | "0048" | "0049" | "0050" | "0051" | "0052" | "0053" | "0054" | "0055" | "0056" | "0057" | "0058" | "0059" | "0060" | "0061" | "0062" | "0063" | "0064" | "0065" | "0066" | "0067" | "0068" | "0069" | "0070" | "0071" | "0072" | "0073" | "0074" | "0075" | "0076" | "0077" | "0078" | "0079" | "0080" | "0081" | "0082" | "0083" | "0084" | "0085" | "0086" | "0087" | "0088" | "0089" | "0090" | "0091" | "0093" | "0094" | "0095" | "0096" | "0097" | "0098" | "0099" | "0100" | "0101" | "0102" | "0104" | "0105" | "0106" | "0107" | "0108" | "0109" | "0110" | "0111" | "0112" | "0113" | "0114" | "0115" | "0116" | "0117" | "0118" | "0119" | "0120" | "0121" | "0122" | "0123" | "0124" | "0125" | "0126" | "0127" | "0128" | "0129" | "0130" | "0131" | "0132" | "0133" | "0134" | "0135" | "0136" | "0137" | "0138" | "0139" | "0140" | "0141" | "0142" | "0143" | "0144" | "0145" | "0146" | "0147" | "0148" | "0149" | "0150" | "0151" | "0152" | "0153" | "0154" | "0155" | "0156" | "0157" | "0158" | "0159" | "0160" | "0161" | "0162" | "0163" | "0164" | "0165" | "0166" | "0167" | "0168" | "0169" | "0170" | "0171" | "0172" | "0173" | "0174" | "0175" | "0176" | "0177" | "0178" | "0179" | "0180" | "0183" | "0184" | "0185" | "0186" | "0187" | "0188" | "0189" | "0190" | "0191" | "0192" | "0193" | "0194" | "0195" | "0196" | "0197" | "0198" | "0199" | "0200" | "0201" | "0202" | "0203" | "0204" | "0205" | "0206" | "0207" | "0208" | "0209" | "0210" | "0211" | "0212" | "0213" | "0214" | "0215" | "0216" | "0217" | "0218" | "0219" | "0220" | "0221" | "0222" | "0223" | "0224" | "0225" | "0226" | "0227" | "0228" | "0229" | "0230" | "0231" | "0232" | "0233" | "0234" | "0235" | "0236" | "0237" | "0238" | "0239" | "0240")[];
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                    };
                                };
                                name: {
                                    key: string;
                                    type: "string";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                postalAddress: {
                                    key: string;
                                    type: "object";
                                    description: string;
                                    required: false;
                                    shape: {
                                        postCode: {
                                            key: string;
                                            type: "string | number";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        line1: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        line2: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        line3: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        city: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        countryCode: {
                                            key: string;
                                            type: ("AD" | "AE" | "AF" | "AG" | "AI" | "AL" | "AM" | "AO" | "AQ" | "AR" | "AS" | "AT" | "AU" | "AW" | "AX" | "AZ" | "BA" | "BB" | "BD" | "BE" | "BF" | "BG" | "BH" | "BI" | "BJ" | "BL" | "BM" | "BN" | "BO" | "BQ" | "BR" | "BS" | "BT" | "BV" | "BW" | "BY" | "BZ" | "CA" | "CC" | "CD" | "CF" | "CG" | "CH" | "CI" | "CK" | "CL" | "CM" | "CN" | "CO" | "CR" | "CU" | "CV" | "CW" | "CX" | "CY" | "CZ" | "DE" | "DJ" | "DK" | "DM" | "DO" | "DZ" | "EC" | "EE" | "EG" | "EH" | "ER" | "ES" | "ET" | "FI" | "FJ" | "FK" | "FM" | "FO" | "FR" | "GA" | "GB" | "GD" | "GE" | "GF" | "GG" | "GH" | "GI" | "GL" | "GM" | "GN" | "GP" | "GQ" | "GR" | "GS" | "GT" | "GU" | "GW" | "GY" | "HK" | "HM" | "HN" | "HR" | "HT" | "HU" | "ID" | "IE" | "IL" | "IM" | "IN" | "IO" | "IQ" | "IR" | "IS" | "IT" | "JE" | "JM" | "JO" | "JP" | "KE" | "KG" | "KH" | "KI" | "KM" | "KN" | "KP" | "KR" | "KW" | "KY" | "KZ" | "LA" | "LB" | "LC" | "LI" | "LK" | "LR" | "LS" | "LT" | "LU" | "LV" | "LY" | "MA" | "MC" | "MD" | "ME" | "MF" | "MG" | "MH" | "MK" | "ML" | "MM" | "MN" | "MO" | "MP" | "MQ" | "MR" | "MS" | "MT" | "MU" | "MV" | "MW" | "MX" | "MY" | "MZ" | "NA" | "NC" | "NE" | "NF" | "NG" | "NI" | "NL" | "NO" | "NP" | "NR" | "NU" | "NZ" | "OM" | "PA" | "PE" | "PF" | "PG" | "PH" | "PK" | "PL" | "PM" | "PN" | "PR" | "PS" | "PT" | "PW" | "PY" | "QA" | "RE" | "RO" | "RS" | "RU" | "RW" | "SA" | "SB" | "SC" | "SD" | "SE" | "SG" | "SH" | "SI" | "SJ" | "SK" | "SL" | "SM" | "SN" | "SO" | "SR" | "SS" | "ST" | "SV" | "SX" | "SY" | "SZ" | "TC" | "TD" | "TF" | "TG" | "TH" | "TJ" | "TK" | "TL" | "TM" | "TN" | "TO" | "TR" | "TT" | "TV" | "TW" | "TZ" | "UA" | "UG" | "UM" | "US" | "UY" | "UZ" | "VA" | "VC" | "VE" | "VG" | "VI" | "VN" | "VU" | "WF" | "WS" | "YE" | "YT" | "ZA" | "ZM" | "ZW" | "1A" | "XI")[];
                                            description: string;
                                            xpath: string;
                                        };
                                        countrySubdivision: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                    };
                                };
                            };
                        };
                        information: {
                            key: string;
                            type: "object";
                            description: string;
                            required: false;
                            shape: {
                                deliveryDate: {
                                    key: string;
                                    type: "date";
                                    description: string;
                                    xpath: string;
                                    transform: {
                                        input: (date: unknown) => string | undefined;
                                    };
                                    additionalXml: {
                                        format: {
                                            key: string;
                                            type: "string";
                                            xpath: string;
                                            defaultValue: string;
                                        };
                                    };
                                };
                            };
                        };
                        despatchAdvice: {
                            type: "object";
                            description: string;
                            required: false;
                            shape: {
                                issuerAssignedID: {
                                    type: "string";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                            };
                        };
                    };
                };
                tradeSettlement: {
                    key: string;
                    type: "object";
                    shape: {
                        creditorIdentifier: {
                            key: string;
                            type: "string";
                            description: string;
                            required: false;
                            xpath: string;
                        };
                        remittanceInformation: {
                            key: string;
                            type: "string";
                            description: string;
                            required: false;
                            xpath: string;
                        };
                        vatAccountingCurrencyCode: {
                            key: string;
                            type: ("AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOV" | "BRL" | "BSD" | "BTN" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHE" | "CHF" | "CHW" | "CLF" | "CLP" | "CNY" | "COP" | "COU" | "CRC" | "CUP" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HTG" | "HUF" | "IDR" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LYD" | "MAD" | "MDL" | "MGA" | "MKD" | "MMK" | "MNT" | "MOP" | "MRU" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SLE" | "SOS" | "SRD" | "SSP" | "STN" | "SVC" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "USN" | "UYI" | "UYU" | "UYW" | "UZS" | "VED" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XBC" | "XBD" | "XCD" | "XDR" | "XOF" | "XPD" | "XPF" | "XPT" | "XSU" | "XTS" | "XUA" | "XXX" | "YER" | "ZAR" | "ZMW" | "ZWG")[];
                            description: string;
                            required: false;
                            xpath: string;
                        };
                        payee: {
                            key: string;
                            type: "object";
                            description: string;
                            required: false;
                            shape: {
                                identifier: {
                                    key: string;
                                    type: "string";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                globalIdentifier: {
                                    key: string;
                                    type: "object";
                                    description: string;
                                    required: false;
                                    shape: {
                                        value: {
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                        schemeIdentifier: {
                                            type: ("0002" | "0003" | "0004" | "0005" | "0006" | "0007" | "0008" | "0009" | "0010" | "0011" | "0012" | "0013" | "0014" | "0015" | "0016" | "0017" | "0018" | "0019" | "0020" | "0021" | "0022" | "0023" | "0024" | "0025" | "0026" | "0027" | "0028" | "0029" | "0030" | "0031" | "0032" | "0033" | "0034" | "0035" | "0036" | "0037" | "0038" | "0039" | "0040" | "0041" | "0042" | "0043" | "0044" | "0045" | "0046" | "0047" | "0048" | "0049" | "0050" | "0051" | "0052" | "0053" | "0054" | "0055" | "0056" | "0057" | "0058" | "0059" | "0060" | "0061" | "0062" | "0063" | "0064" | "0065" | "0066" | "0067" | "0068" | "0069" | "0070" | "0071" | "0072" | "0073" | "0074" | "0075" | "0076" | "0077" | "0078" | "0079" | "0080" | "0081" | "0082" | "0083" | "0084" | "0085" | "0086" | "0087" | "0088" | "0089" | "0090" | "0091" | "0093" | "0094" | "0095" | "0096" | "0097" | "0098" | "0099" | "0100" | "0101" | "0102" | "0104" | "0105" | "0106" | "0107" | "0108" | "0109" | "0110" | "0111" | "0112" | "0113" | "0114" | "0115" | "0116" | "0117" | "0118" | "0119" | "0120" | "0121" | "0122" | "0123" | "0124" | "0125" | "0126" | "0127" | "0128" | "0129" | "0130" | "0131" | "0132" | "0133" | "0134" | "0135" | "0136" | "0137" | "0138" | "0139" | "0140" | "0141" | "0142" | "0143" | "0144" | "0145" | "0146" | "0147" | "0148" | "0149" | "0150" | "0151" | "0152" | "0153" | "0154" | "0155" | "0156" | "0157" | "0158" | "0159" | "0160" | "0161" | "0162" | "0163" | "0164" | "0165" | "0166" | "0167" | "0168" | "0169" | "0170" | "0171" | "0172" | "0173" | "0174" | "0175" | "0176" | "0177" | "0178" | "0179" | "0180" | "0183" | "0184" | "0185" | "0186" | "0187" | "0188" | "0189" | "0190" | "0191" | "0192" | "0193" | "0194" | "0195" | "0196" | "0197" | "0198" | "0199" | "0200" | "0201" | "0202" | "0203" | "0204" | "0205" | "0206" | "0207" | "0208" | "0209" | "0210" | "0211" | "0212" | "0213" | "0214" | "0215" | "0216" | "0217" | "0218" | "0219" | "0220" | "0221" | "0222" | "0223" | "0224" | "0225" | "0226" | "0227" | "0228" | "0229" | "0230" | "0231" | "0232" | "0233" | "0234" | "0235" | "0236" | "0237" | "0238" | "0239" | "0240")[];
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                    };
                                };
                                name: {
                                    key: string;
                                    type: "string";
                                    description: string;
                                    xpath: string;
                                };
                                organization: {
                                    type: "object";
                                    description: string;
                                    required: false;
                                    shape: {
                                        registrationIdentifier: {
                                            key: string;
                                            type: "object";
                                            description: string;
                                            required: false;
                                            shape: {
                                                value: {
                                                    type: "string";
                                                    description: string;
                                                    required: false;
                                                    xpath: string;
                                                };
                                                schemeIdentifier: {
                                                    type: ("0002" | "0003" | "0004" | "0005" | "0006" | "0007" | "0008" | "0009" | "0010" | "0011" | "0012" | "0013" | "0014" | "0015" | "0016" | "0017" | "0018" | "0019" | "0020" | "0021" | "0022" | "0023" | "0024" | "0025" | "0026" | "0027" | "0028" | "0029" | "0030" | "0031" | "0032" | "0033" | "0034" | "0035" | "0036" | "0037" | "0038" | "0039" | "0040" | "0041" | "0042" | "0043" | "0044" | "0045" | "0046" | "0047" | "0048" | "0049" | "0050" | "0051" | "0052" | "0053" | "0054" | "0055" | "0056" | "0057" | "0058" | "0059" | "0060" | "0061" | "0062" | "0063" | "0064" | "0065" | "0066" | "0067" | "0068" | "0069" | "0070" | "0071" | "0072" | "0073" | "0074" | "0075" | "0076" | "0077" | "0078" | "0079" | "0080" | "0081" | "0082" | "0083" | "0084" | "0085" | "0086" | "0087" | "0088" | "0089" | "0090" | "0091" | "0093" | "0094" | "0095" | "0096" | "0097" | "0098" | "0099" | "0100" | "0101" | "0102" | "0104" | "0105" | "0106" | "0107" | "0108" | "0109" | "0110" | "0111" | "0112" | "0113" | "0114" | "0115" | "0116" | "0117" | "0118" | "0119" | "0120" | "0121" | "0122" | "0123" | "0124" | "0125" | "0126" | "0127" | "0128" | "0129" | "0130" | "0131" | "0132" | "0133" | "0134" | "0135" | "0136" | "0137" | "0138" | "0139" | "0140" | "0141" | "0142" | "0143" | "0144" | "0145" | "0146" | "0147" | "0148" | "0149" | "0150" | "0151" | "0152" | "0153" | "0154" | "0155" | "0156" | "0157" | "0158" | "0159" | "0160" | "0161" | "0162" | "0163" | "0164" | "0165" | "0166" | "0167" | "0168" | "0169" | "0170" | "0171" | "0172" | "0173" | "0174" | "0175" | "0176" | "0177" | "0178" | "0179" | "0180" | "0183" | "0184" | "0185" | "0186" | "0187" | "0188" | "0189" | "0190" | "0191" | "0192" | "0193" | "0194" | "0195" | "0196" | "0197" | "0198" | "0199" | "0200" | "0201" | "0202" | "0203" | "0204" | "0205" | "0206" | "0207" | "0208" | "0209" | "0210" | "0211" | "0212" | "0213" | "0214" | "0215" | "0216" | "0217" | "0218" | "0219" | "0220" | "0221" | "0222" | "0223" | "0224" | "0225" | "0226" | "0227" | "0228" | "0229" | "0230" | "0231" | "0232" | "0233" | "0234" | "0235" | "0236" | "0237" | "0238" | "0239" | "0240")[];
                                                    description: string;
                                                    required: false;
                                                    xpath: string;
                                                };
                                            };
                                        };
                                    };
                                };
                            };
                        };
                        vatBreakdown: {
                            key: string;
                            type: "object[]";
                            group: "vat-breakdown";
                            description: string;
                            required: false;
                            validator: zod.ZodOptional<zod.ZodArray<zod.ZodAny, "many">>;
                            shape: {
                                calculatedAmount: {
                                    key: string;
                                    type: "string | number";
                                    description: string;
                                    xpath: string;
                                };
                                typeCode: {
                                    key: string;
                                    type: "string";
                                    description: string;
                                    xpath: string;
                                };
                                exemptionReasonText: {
                                    key: string;
                                    type: "string";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                basisAmount: {
                                    key: string;
                                    type: "string | number";
                                    description: string;
                                    xpath: string;
                                };
                                categoryCode: {
                                    key: string;
                                    type: ("E" | "G" | "K" | "L" | "M" | "O" | "S" | "Z" | "AE" | "AAA" | "AAB" | "AAC" | "AAD" | "AAE" | "AAF" | "AAG" | "AAH" | "AAI" | "AAJ" | "AAK" | "AAL" | "AAM" | "AAO" | "AAP" | "ADD" | "BOL" | "CAP" | "CAR" | "COC" | "CST" | "CUD" | "CVD" | "ENV" | "EXC" | "EXP" | "FET" | "FRE" | "GCN" | "GST" | "ILL" | "IMP" | "IND" | "LAC" | "LCN" | "LDP" | "LOC" | "LST" | "MCA" | "MCD" | "OTH" | "PDB" | "PDC" | "PRF" | "SCN" | "SSS" | "STT" | "SUP" | "SUR" | "SWT" | "TAC" | "TOT" | "TOX" | "TTA" | "VAD" | "VAT")[];
                                    description: string;
                                    xpath: string;
                                };
                                exemptionReasonCode: {
                                    key: string;
                                    type: ("VATEX-EU-79-C" | "VATEX-EU-132" | "VATEX-EU-132-1A" | "VATEX-EU-132-1B" | "VATEX-EU-132-1C" | "VATEX-EU-132-1D" | "VATEX-EU-132-1E" | "VATEX-EU-132-1F" | "VATEX-EU-132-1G" | "VATEX-EU-132-1H" | "VATEX-EU-132-1I" | "VATEX-EU-132-1J" | "VATEX-EU-132-1K" | "VATEX-EU-132-1L" | "VATEX-EU-132-1M" | "VATEX-EU-132-1N" | "VATEX-EU-132-1O" | "VATEX-EU-132-1P" | "VATEX-EU-132-1Q" | "VATEX-EU-143" | "VATEX-EU-143-1A" | "VATEX-EU-143-1B" | "VATEX-EU-143-1C" | "VATEX-EU-143-1D" | "VATEX-EU-143-1E" | "VATEX-EU-143-1F" | "VATEX-EU-143-1FA" | "VATEX-EU-143-1G" | "VATEX-EU-143-1H" | "VATEX-EU-143-1I" | "VATEX-EU-143-1J" | "VATEX-EU-143-1K" | "VATEX-EU-143-1L" | "VATEX-EU-144" | "VATEX-EU-146-1E" | "VATEX-EU-148" | "VATEX-EU-148-A" | "VATEX-EU-148-B" | "VATEX-EU-148-C" | "VATEX-EU-148-D" | "VATEX-EU-148-E" | "VATEX-EU-148-F" | "VATEX-EU-148-G" | "VATEX-EU-151" | "VATEX-EU-151-1A" | "VATEX-EU-151-1AA" | "VATEX-EU-151-1B" | "VATEX-EU-151-1C" | "VATEX-EU-151-1D" | "VATEX-EU-151-1E" | "VATEX-EU-153" | "VATEX-EU-159" | "VATEX-EU-309" | "VATEX-EU-AE" | "VATEX-EU-D" | "VATEX-EU-F" | "VATEX-EU-G" | "VATEX-EU-I" | "VATEX-EU-IC" | "VATEX-EU-J" | "VATEX-EU-O" | "VATEX-FR-FRANCHISE" | "VATEX-FR-CNWVAT" | "VATEX-FR-CGI261-1" | "VATEX-FR-CGI261-2" | "VATEX-FR-CGI261-3" | "VATEX-FR-CGI261-4" | "VATEX-FR-CGI261-5" | "VATEX-FR-CGI261-7" | "VATEX-FR-CGI261-8" | "VATEX-FR-CGI261A" | "VATEX-FR-CGI261B" | "VATEX-FR-CGI261C-1" | "VATEX-FR-CGI261C-2" | "VATEX-FR-CGI261C-3" | "VATEX-FR-CGI261D-1" | "VATEX-FR-CGI261D-1BIS" | "VATEX-FR-CGI261D-2" | "VATEX-FR-CGI261D-3" | "VATEX-FR-CGI261D-4" | "VATEX-FR-CGI261E-1" | "VATEX-FR-CGI261E-2" | "VATEX-FR-CGI277A" | "VATEX-FR-CGI275" | "VATEX-FR-298SEXDECIESA" | "VATEX-FR-CGI295" | "VATEX-FR-AE")[];
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                dueDateTypeCode: {
                                    key: string;
                                    type: ("5" | "29" | "72")[];
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                rateApplicablePercent: {
                                    key: string;
                                    type: "string | number";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                            };
                        };
                        invoicingPeriod: {
                            key: string;
                            type: "object";
                            description: string;
                            required: false;
                            shape: {
                                startDate: {
                                    key: string;
                                    type: "date";
                                    description: string;
                                    required: false;
                                    transform: {
                                        input: (date: unknown) => string | undefined;
                                    };
                                    xpath: string;
                                    additionalXml: {
                                        format: {
                                            key: string;
                                            type: "string";
                                            xpath: string;
                                            defaultValue: string;
                                        };
                                    };
                                };
                                endDate: {
                                    key: string;
                                    type: "date";
                                    description: string;
                                    required: false;
                                    transform: {
                                        input: (date: unknown) => string | undefined;
                                    };
                                    xpath: string;
                                    additionalXml: {
                                        format: {
                                            key: string;
                                            type: "string";
                                            xpath: string;
                                            defaultValue: string;
                                        };
                                    };
                                };
                            };
                        };
                        paymentInstruction: {
                            key: string;
                            type: "object";
                            description: string;
                            required: false;
                            shape: {
                                typeCode: {
                                    key: string;
                                    type: ("2" | "1" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "13" | "14" | "15" | "16" | "17" | "18" | "19" | "20" | "21" | "22" | "23" | "24" | "25" | "26" | "27" | "28" | "29" | "30" | "31" | "32" | "33" | "34" | "35" | "36" | "37" | "38" | "39" | "40" | "41" | "42" | "43" | "44" | "45" | "46" | "47" | "48" | "49" | "50" | "51" | "52" | "53" | "54" | "55" | "56" | "57" | "58" | "59" | "60" | "61" | "62" | "63" | "64" | "65" | "66" | "67" | "68" | "69" | "70" | "74" | "75" | "76" | "77" | "78" | "91" | "92" | "93" | "94" | "95" | "96" | "97" | "98" | "ZZZ")[];
                                    description: string;
                                    xpath: string;
                                };
                                debitedAccountIdentifier: {
                                    key: string;
                                    type: "string";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                transfers: {
                                    key: string;
                                    type: "object[]";
                                    required: false;
                                    description: string;
                                    group: "transfers";
                                    shape: {
                                        paymentAccountIdentifier: {
                                            key: string;
                                            type: "string";
                                            required: false;
                                            description: string;
                                            xpath: string;
                                        };
                                        nationalAccountNumber: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                    };
                                };
                            };
                        };
                        allowances: {
                            key: string;
                            type: "object[]";
                            description: string;
                            required: false;
                            group: "allowances";
                            shape: {
                                calculationPercent: {
                                    key: string;
                                    type: "string | number";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                basisAmount: {
                                    key: string;
                                    type: "string | number";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                actualAmount: {
                                    key: string;
                                    type: "string | number";
                                    description: string;
                                    xpath: string;
                                    additionalXml: {
                                        chargeIndicator: {
                                            key: string;
                                            type: "boolean";
                                            xpath: string;
                                            defaultValue: false;
                                        };
                                    };
                                };
                                reasonCode: {
                                    key: string;
                                    type: ("41" | "42" | "60" | "62" | "63" | "64" | "65" | "66" | "67" | "68" | "70" | "71" | "88" | "95" | "100" | "102" | "103" | "104" | "105")[];
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                reason: {
                                    key: string;
                                    type: "string";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                categoryTradeTax: {
                                    key: string;
                                    type: "object";
                                    description: string;
                                    required: false;
                                    shape: {
                                        categoryCode: {
                                            key: string;
                                            type: ("E" | "G" | "K" | "L" | "M" | "O" | "S" | "Z" | "AE" | "AAA" | "AAB" | "AAC" | "AAD" | "AAE" | "AAF" | "AAG" | "AAH" | "AAI" | "AAJ" | "AAK" | "AAL" | "AAM" | "AAO" | "AAP" | "ADD" | "BOL" | "CAP" | "CAR" | "COC" | "CST" | "CUD" | "CVD" | "ENV" | "EXC" | "EXP" | "FET" | "FRE" | "GCN" | "GST" | "ILL" | "IMP" | "IND" | "LAC" | "LCN" | "LDP" | "LOC" | "LST" | "MCA" | "MCD" | "OTH" | "PDB" | "PDC" | "PRF" | "SCN" | "SSS" | "STT" | "SUP" | "SUR" | "SWT" | "TAC" | "TOT" | "TOX" | "TTA" | "VAD" | "VAT")[];
                                            description: string;
                                            xpath: string;
                                        };
                                        vatRate: {
                                            key: string;
                                            type: "string | number";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                    };
                                    additionalXml: {
                                        typeCode: {
                                            key: string;
                                            type: "string";
                                            xpath: string;
                                            defaultValue: string;
                                        };
                                    };
                                };
                            };
                        };
                        charges: {
                            key: string;
                            type: "object[]";
                            description: string;
                            group: "charges";
                            sibling: (data: any) => any;
                            required: false;
                            shape: {
                                calculationPercent: {
                                    key: string;
                                    type: "string | number";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                basisAmount: {
                                    key: string;
                                    type: "string | number";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                actualAmount: {
                                    key: string;
                                    type: "string | number";
                                    description: string;
                                    xpath: string;
                                    additionalXml: {
                                        chargeIndicator: {
                                            type: "boolean";
                                            defaultValue: true;
                                            xpath: string;
                                            key: string;
                                        };
                                    };
                                };
                                reasonCode: {
                                    key: string;
                                    type: ("AU" | "CA" | "CD" | "CG" | "EG" | "ER" | "FI" | "ID" | "IR" | "IS" | "LA" | "ML" | "PA" | "PL" | "RE" | "SA" | "SG" | "SH" | "SM" | "TT" | "TV" | "AED" | "CAD" | "FC" | "AAA" | "AAC" | "AAD" | "AAE" | "AAF" | "AAH" | "AAI" | "CAP" | "CAR" | "TAC" | "AAS" | "AAT" | "AAV" | "AAY" | "AAZ" | "ABA" | "ABB" | "ABC" | "ABD" | "ABF" | "ABK" | "ABL" | "ABN" | "ABR" | "ABS" | "ABT" | "ABU" | "ACF" | "ACG" | "ACH" | "ACI" | "ACJ" | "ACK" | "ACL" | "ACM" | "ACS" | "ADC" | "ADE" | "ADJ" | "ADK" | "ADL" | "ADM" | "ADN" | "ADO" | "ADP" | "ADQ" | "ADR" | "ADT" | "ADW" | "ADY" | "ADZ" | "AEA" | "AEB" | "AEC" | "AEF" | "AEH" | "AEI" | "AEJ" | "AEK" | "AEL" | "AEM" | "AEN" | "AEO" | "AEP" | "AES" | "AET" | "AEU" | "AEV" | "AEW" | "AEX" | "AEY" | "AEZ" | "ZZZ" | "AA" | "AJ" | "CAB" | "CAE" | "CAF" | "CAI" | "CAJ" | "CAK" | "CAL" | "CAM" | "CAN" | "CAO" | "CAQ" | "CAS" | "CAT" | "CAU" | "CAV" | "CAW" | "CAX" | "CAY" | "CAZ" | "CS" | "CT" | "DAB" | "DAC" | "DAD" | "DAF" | "DAG" | "DAH" | "DAI" | "DAJ" | "DAK" | "DAL" | "DAM" | "DAN" | "DAO" | "DAP" | "DAQ" | "DL" | "EP" | "FAA" | "FAB" | "FAC" | "FH" | "GAA" | "HAA" | "HD" | "HH" | "IAA" | "IAB" | "IF" | "KO" | "L1" | "LAA" | "LAB" | "LF" | "MAE" | "MI" | "NAA" | "OA" | "PAA" | "PC" | "PRV" | "RAB" | "RAC" | "RAD" | "RAF" | "RF" | "RH" | "RV" | "SAA" | "SAD" | "SAE" | "SAI" | "SU" | "TAB" | "V1" | "V2" | "WH" | "XAA" | "YY")[];
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                reason: {
                                    key: string;
                                    type: "string";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                categoryTradeTax: {
                                    key: string;
                                    type: "object";
                                    description: string;
                                    required: false;
                                    shape: {
                                        categoryCode: {
                                            key: string;
                                            type: ("E" | "G" | "K" | "L" | "M" | "O" | "S" | "Z" | "AE" | "AAA" | "AAB" | "AAC" | "AAD" | "AAE" | "AAF" | "AAG" | "AAH" | "AAI" | "AAJ" | "AAK" | "AAL" | "AAM" | "AAO" | "AAP" | "ADD" | "BOL" | "CAP" | "CAR" | "COC" | "CST" | "CUD" | "CVD" | "ENV" | "EXC" | "EXP" | "FET" | "FRE" | "GCN" | "GST" | "ILL" | "IMP" | "IND" | "LAC" | "LCN" | "LDP" | "LOC" | "LST" | "MCA" | "MCD" | "OTH" | "PDB" | "PDC" | "PRF" | "SCN" | "SSS" | "STT" | "SUP" | "SUR" | "SWT" | "TAC" | "TOT" | "TOX" | "TTA" | "VAD" | "VAT")[];
                                            description: string;
                                            xpath: string;
                                        };
                                        vatRate: {
                                            key: string;
                                            type: "string | number";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                    };
                                    additionalXml: {
                                        typeCode: {
                                            key: string;
                                            type: "string";
                                            xpath: string;
                                            defaultValue: string;
                                        };
                                    };
                                };
                            };
                        };
                        paymentTerms: {
                            key: string;
                            type: "object";
                            description: string;
                            required: false;
                            shape: {
                                description: {
                                    key: string;
                                    type: "string";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                dueDate: {
                                    key: string;
                                    type: "date";
                                    description: string;
                                    required: false;
                                    transform: {
                                        input: (date: unknown) => string | undefined;
                                    };
                                    xpath: string;
                                    additionalXml: {
                                        format: {
                                            key: string;
                                            type: "string";
                                            xpath: string;
                                            defaultValue: string;
                                        };
                                    };
                                };
                                mandateReferenceIdentifier: {
                                    key: string;
                                    type: "string";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                            };
                        };
                        monetarySummation: {
                            type: "object";
                            shape: {
                                lineTotalAmount: {
                                    key: string;
                                    type: "string | number";
                                    description: string;
                                    xpath: string;
                                };
                                chargeTotalAmount: {
                                    key: string;
                                    type: "string | number";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                allowanceTotalAmount: {
                                    key: string;
                                    type: "string | number";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                                paidAmount: {
                                    key: string;
                                    type: "string | number";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                            };
                        };
                        precendingInvoices: {
                            key: string;
                            type: "object[]";
                            description: string;
                            required: false;
                            group: "precending-invoices";
                            shape: {
                                reference: {
                                    key: string;
                                    type: "string";
                                    description: string;
                                    xpath: string;
                                };
                                issueDate: {
                                    key: string;
                                    type: "date";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                    transform: {
                                        input: (date: unknown) => string | undefined;
                                    };
                                    additionalXml: {
                                        format: {
                                            key: string;
                                            type: "string";
                                            xpath: string;
                                            defaultValue: string;
                                        };
                                    };
                                };
                            };
                        };
                        buyerAccountant: {
                            key: string;
                            type: "object";
                            required: false;
                            shape: {
                                reference: {
                                    key: string;
                                    type: "string";
                                    description: string;
                                    required: false;
                                    xpath: string;
                                };
                            };
                        };
                    };
                };
            };
        };
    };
    mask: {
        readonly businessProcessType: "BT-23";
        readonly specificationIdentifier: "BT-24";
        readonly number: "BT-1";
        readonly typeCode: "BT-3";
        readonly issueDate: "BT-2";
        readonly includedNote: "BG-1";
        readonly transaction: readonly ["BG-25-00", {
            readonly tradeAgreement: readonly ["BT-10-00", {
                readonly buyerReference: "BT-10";
                readonly seller: readonly ["BG-4", {
                    readonly identifier: "BT-29";
                    readonly globalIdentifier: "BT-29-0";
                    readonly name: "BT-27";
                    readonly organization: readonly ["BT-30-00", {
                        readonly registrationIdentifier: "BT-30";
                        readonly tradingName: "BT-28";
                    }];
                    readonly postalAddress: readonly ["BG-5", {
                        readonly postCode: "BT-38";
                        readonly line1: "BT-35";
                        readonly line2: "BT-36";
                        readonly line3: "BT-162";
                        readonly city: "BT-37";
                        readonly countryCode: "BT-40";
                        readonly countrySubdivision: "BT-39";
                    }];
                    readonly electronicAddress: "BT-34";
                    readonly taxRegistration: readonly ["seller-tax-registration", {
                        readonly vatIdentifier: "BT-31";
                        readonly localIdentifier: "BT-32";
                    }];
                }];
                readonly buyer: readonly ["BG-7", {
                    readonly identifier: "BT-46";
                    readonly globalIdentifier: "BT-46-00";
                    readonly name: "BT-44";
                    readonly organization: readonly ["BT-47-00", {
                        readonly registrationIdentifier: "BT-47";
                    }];
                    readonly postalAddress: readonly ["BG-8", {
                        readonly postCode: "BT-53";
                        readonly line1: "BT-50";
                        readonly line2: "BT-51";
                        readonly line3: "BT-163";
                        readonly city: "BT-52";
                        readonly countryCode: "BT-55";
                        readonly countrySubdivision: "BT-54";
                    }];
                    readonly electronicAddress: "BT-49";
                    readonly taxRegistration: readonly ["buyer-tax-registration", {
                        readonly vatIdentifier: "BT-48";
                    }];
                }];
                readonly sellerTaxRepresentative: readonly ["BG-11", {
                    readonly name: "BT-62";
                    readonly postalAddress: readonly ["BG-12", {
                        readonly postCode: "BT-67";
                        readonly line1: "BT-64";
                        readonly line2: "BT-65";
                        readonly line3: "BT-164";
                        readonly city: "BT-66";
                        readonly countryCode: "BT-69";
                        readonly countrySubdivision: "BT-68";
                    }];
                }];
                readonly associatedOrder: readonly ["BT-13-00", {
                    readonly purchaseOrderReference: "BT-13";
                }];
                readonly associatedContract: readonly ["BT-12-00", {
                    readonly reference: "BT-12";
                }];
            }];
            readonly tradeDelivery: readonly ["BG-13-00", {
                readonly shipTo: readonly ["BG-13", {
                    readonly identifier: "BT-71";
                    readonly globalIdentifier: "BT-71-00";
                    readonly name: "BT-70";
                    readonly postalAddress: readonly ["BG-15", {
                        readonly postCode: "BT-78";
                        readonly line1: "BT-75";
                        readonly line2: "BT-76";
                        readonly line3: "BT-165";
                        readonly city: "BT-77";
                        readonly countryCode: "BT-80";
                        readonly countrySubdivision: "BT-79";
                    }];
                }];
                readonly information: readonly ["BT-72-00", {
                    readonly deliveryDate: "BT-72";
                }];
                readonly despatchAdvice: readonly ["BT-16-00", {
                    readonly issuerAssignedID: "BT-16";
                }];
            }];
            readonly tradeSettlement: readonly ["BG-19", {
                readonly creditorIdentifier: "BT-90";
                readonly remittanceInformation: "BT-83";
                readonly vatAccountingCurrencyCode: "BT-6";
                readonly currencyCode: "BT-5";
                readonly payee: readonly ["BG-10", {
                    readonly identifier: "BT-60";
                    readonly globalIdentifier: "BT-60-0";
                    readonly name: "BT-59";
                    readonly organization: readonly ["BT-61-00", {
                        readonly registrationIdentifier: "BT-61";
                    }];
                }];
                readonly paymentInstruction: readonly ["BG-16", {
                    readonly typeCode: "BT-81";
                    readonly debitedAccountIdentifier: "BT-91";
                    readonly transfers: readonly ["BG-17", {
                        readonly paymentAccountIdentifier: "BT-84";
                        readonly nationalAccountNumber: "BT-84-0";
                    }];
                }];
                readonly vatBreakdown: readonly ["BG-23", {
                    readonly calculatedAmount: "BT-117";
                    readonly typeCode: "BT-118-0";
                    readonly exemptionReasonText: "BT-120";
                    readonly basisAmount: "BT-116";
                    readonly categoryCode: "BT-118";
                    readonly exemptionReasonCode: "BT-121";
                    readonly dueDateTypeCode: "BT-8";
                    readonly rateApplicablePercent: "BT-119";
                }];
                readonly invoicingPeriod: readonly ["BG-14", {
                    readonly startDate: "BT-73";
                    readonly endDate: "BT-74";
                }];
                readonly allowances: readonly ["BG-20", {
                    readonly chargeIndicator: "BG-20-0";
                    readonly calculationPercent: "BT-94";
                    readonly basisAmount: "BT-93";
                    readonly actualAmount: "BT-92";
                    readonly reasonCode: "BT-98";
                    readonly reason: "BT-97";
                    readonly categoryTradeTax: readonly ["BT-95-00", {
                        readonly categoryCode: "BT-95";
                        readonly vatRate: "BT-96";
                    }];
                }];
                readonly charges: readonly ["BG-21", {
                    readonly chargeIndicator: "BG-21-0";
                    readonly calculationPercent: "BT-101";
                    readonly basisAmount: "BT-100";
                    readonly actualAmount: "BT-99";
                    readonly reasonCode: "BT-105";
                    readonly reason: "BT-104";
                    readonly categoryTradeTax: readonly ["BT-102-00", {
                        readonly categoryCode: "BT-102";
                        readonly vatRate: "BT-103";
                    }];
                }];
                readonly paymentTerms: readonly ["BT-20-00", {
                    readonly description: "BT-20";
                    readonly dueDate: "BT-9";
                    readonly mandateReferenceIdentifier: "BT-89";
                }];
                readonly monetarySummation: readonly ["BG-22", {
                    readonly lineTotalAmount: "BT-106";
                    readonly chargeTotalAmount: "BT-108";
                    readonly allowanceTotalAmount: "BT-107";
                    readonly taxBasisTotalAmount: "BT-109";
                    readonly taxTotal: "BT-110";
                    readonly grandTotalAmount: "BT-112";
                    readonly paidAmount: "BT-113";
                    readonly duePayableAmount: "BT-115";
                }];
                readonly precendingInvoices: readonly ["BG-3", {
                    readonly reference: "BT-25";
                    readonly issueDate: "BT-26";
                }];
                readonly buyerAccountant: readonly ["BT-19-00", {
                    readonly reference: "BT-19";
                }];
            }];
        }];
    };
    xsdPath: () => string;
    conformanceLevel: "BASIC WL";
    documentFileName: "factur-x.xml";
    documentType: "INVOICE";
    version: "1.0";
} & {
    parse: (ctx: {
        context: BaseZugferdContext;
        data: InferSchema<Profile>;
    }) => any;
    validate: (data: string | Buffer<ArrayBufferLike> | {
        file: string;
    }) => Promise<boolean>;
};
type ProfileBasicWL = InferSchema<typeof BASIC_WL>;

export { BASIC_WL, type ProfileBasicWL };
