import { B as BaseZugferdContext, I as InferSchema, P as Profile } from '../index-CLe7O-Zp.js';
import * as zod from 'zod';
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: ("3" | "1" | "2" | "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" | "71" | "72" | "73" | "74" | "75" | "76" | "77" | "78" | "79" | "80" | "81" | "82" | "83" | "84" | "85" | "86" | "87" | "88" | "89" | "90" | "91" | "92" | "93" | "94" | "95" | "96" | "97" | "98" | "99" | "100" | "101" | "102" | "103" | "104" | "105" | "106" | "107" | "108" | "109" | "110" | "111" | "112" | "113" | "114" | "115" | "116" | "117" | "118" | "119" | "120" | "121" | "122" | "123" | "124" | "125" | "126" | "127" | "128" | "129" | "130" | "131" | "132" | "133" | "134" | "135" | "136" | "137" | "138" | "139" | "140" | "141" | "142" | "143" | "144" | "145" | "146" | "147" | "148" | "149" | "150" | "151" | "152" | "153" | "154" | "155" | "156" | "157" | "158" | "159" | "160" | "161" | "162" | "163" | "164" | "165" | "166" | "167" | "168" | "169" | "170" | "171" | "172" | "173" | "174" | "175" | "176" | "177" | "178" | "179" | "180" | "181" | "182" | "183" | "184" | "185" | "186" | "187" | "188" | "189" | "190" | "191" | "192" | "193" | "194" | "195" | "196" | "197" | "198" | "199" | "200" | "201" | "202" | "203" | "204" | "205" | "206" | "207" | "208" | "209" | "210" | "211" | "212" | "213" | "214" | "215" | "216" | "217" | "218" | "219" | "220" | "221" | "222" | "223" | "224" | "225" | "226" | "227" | "228" | "229" | "230" | "231" | "232" | "233" | "234" | "235" | "236" | "237" | "238" | "239" | "240" | "241" | "242" | "243" | "244" | "245" | "246" | "247" | "248" | "249" | "250" | "251" | "252" | "253" | "254" | "255" | "256" | "257" | "258" | "259" | "260" | "261" | "262" | "263" | "264" | "265" | "266" | "267" | "268" | "269" | "270" | "271" | "272" | "273" | "274" | "275" | "276" | "277" | "278" | "279" | "280" | "281" | "282" | "283" | "284" | "285" | "286" | "287" | "288" | "289" | "290" | "291" | "292" | "293" | "294" | "295" | "296" | "297" | "298" | "299" | "300" | "301" | "302" | "303" | "304" | "305" | "306" | "307" | "308" | "309" | "310" | "311" | "312" | "313" | "314" | "315" | "316" | "317" | "318" | "319" | "320" | "321" | "322" | "323" | "324" | "325" | "326" | "327" | "328" | "329" | "330" | "331" | "332" | "333" | "334" | "335" | "336" | "337" | "338" | "339" | "340" | "341" | "342" | "343" | "344" | "345" | "346" | "347" | "348" | "349" | "350" | "351" | "352" | "353" | "354" | "355" | "356" | "357" | "358" | "359" | "360" | "361" | "362" | "363" | "364" | "365" | "366" | "367" | "368" | "369" | "370" | "371" | "372" | "373" | "374" | "375" | "376" | "377" | "378" | "379" | "380" | "381" | "382" | "383" | "384" | "385" | "386" | "387" | "388" | "389" | "390" | "391" | "392" | "393" | "394" | "395" | "396" | "397" | "398" | "399" | "400" | "401" | "402" | "403" | "404" | "405" | "406" | "407" | "408" | "409" | "410" | "411" | "412" | "413" | "414" | "415" | "416" | "417" | "418" | "419" | "420" | "421" | "422" | "423" | "424" | "425" | "426" | "427" | "428" | "429" | "430" | "431" | "432" | "433" | "434" | "435" | "436" | "437" | "438" | "439" | "440" | "441" | "442" | "443" | "444" | "445" | "446" | "447" | "448" | "449" | "450" | "451" | "452" | "453" | "454" | "455" | "456" | "457" | "458" | "459" | "460" | "461" | "462" | "463" | "464" | "465" | "466" | "467" | "468" | "469" | "470" | "481" | "482" | "483" | "484" | "485" | "486" | "487" | "488" | "489" | "490" | "491" | "493" | "494" | "495" | "496" | "497" | "498" | "499" | "520" | "521" | "522" | "523" | "524" | "525" | "526" | "527" | "528" | "529" | "530" | "531" | "532" | "533" | "534" | "535" | "536" | "537" | "538" | "539" | "550" | "551" | "552" | "553" | "554" | "575" | "576" | "577" | "578" | "579" | "580" | "581" | "582" | "583" | "584" | "585" | "586" | "587" | "588" | "589" | "610" | "621" | "622" | "623" | "624" | "625" | "626" | "627" | "628" | "629" | "630" | "631" | "632" | "633" | "634" | "635" | "636" | "637" | "638" | "639" | "640" | "641" | "642" | "643" | "644" | "645" | "646" | "647" | "648" | "649" | "650" | "651" | "652" | "653" | "654" | "655" | "656" | "657" | "658" | "659" | "700" | "701" | "702" | "703" | "704" | "705" | "706" | "707" | "708" | "709" | "710" | "711" | "712" | "713" | "714" | "715" | "716" | "717" | "718" | "719" | "720" | "721" | "722" | "723" | "724" | "725" | "726" | "727" | "728" | "729" | "730" | "731" | "732" | "733" | "734" | "735" | "736" | "737" | "738" | "739" | "740" | "741" | "742" | "743" | "744" | "745" | "746" | "747" | "748" | "749" | "750" | "751" | "752" | "753" | "754" | "755" | "756" | "757" | "758" | "759" | "760" | "761" | "762" | "763" | "764" | "765" | "766" | "767" | "768" | "769" | "770" | "771" | "772" | "773" | "774" | "775" | "776" | "777" | "778" | "779" | "780" | "781" | "782" | "783" | "784" | "785" | "786" | "787" | "788" | "789" | "790" | "791" | "792" | "793" | "794" | "795" | "796" | "797" | "798" | "799" | "810" | "811" | "812" | "813" | "814" | "815" | "816" | "817" | "818" | "819" | "820" | "821" | "822" | "823" | "824" | "825" | "826" | "827" | "828" | "829" | "830" | "831" | "832" | "833" | "834" | "835" | "836" | "837" | "838" | "839" | "840" | "841" | "842" | "843" | "844" | "845" | "846" | "847" | "848" | "849" | "850" | "851" | "852" | "853" | "854" | "855" | "856" | "857" | "858" | "859" | "860" | "861" | "862" | "863" | "864" | "865" | "866" | "867" | "868" | "869" | "870" | "871" | "872" | "873" | "874" | "875" | "876" | "877" | "878" | "879" | "890" | "891" | "892" | "893" | "894" | "895" | "896" | "897" | "898" | "899" | "900" | "901" | "902" | "903" | "904" | "910" | "911" | "913" | "914" | "915" | "916" | "917" | "925" | "926" | "927" | "929" | "930" | "931" | "932" | "933" | "934" | "935" | "936" | "937" | "938" | "940" | "941" | "950" | "951" | "952" | "953" | "954" | "955" | "960" | "961" | "962" | "963" | "964" | "965" | "966" | "970" | "971" | "972" | "974" | "975" | "976" | "977" | "978" | "979" | "990" | "991" | "995" | "996" | "998")[];
                description: string;
                xpath: string;
            };
            issueDate: {
                key: string;
                type: "date";
                description: string;
                xpath: string;
                additionalXml: {
                    "/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString/@format": 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" | "XR01" | "XR02" | "XR03")[];
                                                        description: string;
                                                        required: false;
                                                        xpath: string;
                                                    };
                                                };
                                            };
                                        };
                                    };
                                    postalAddress: {
                                        key: string;
                                        type: "object";
                                        description: string;
                                        shape: {
                                            countryCode: {
                                                key: string;
                                                type: ("AD" | "AE" | "AF" | "AL" | "DZ" | "AS" | "AO" | "AI" | "AQ" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BM" | "AX" | "BT" | "BO" | "BQ" | "BA" | "BW" | "BV" | "BR" | "IO" | "BN" | "BG" | "BF" | "BI" | "CV" | "KH" | "CM" | "CA" | "KY" | "CF" | "TD" | "CL" | "CN" | "CX" | "CC" | "CO" | "KM" | "CD" | "CG" | "CK" | "CR" | "HR" | "CU" | "CW" | "CY" | "CZ" | "CI" | "DK" | "DJ" | "DM" | "DO" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "SZ" | "ET" | "FK" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "TF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GI" | "GR" | "GL" | "GD" | "GP" | "GU" | "GT" | "GG" | "GN" | "GW" | "GY" | "HT" | "HM" | "VA" | "HN" | "HK" | "HU" | "IS" | "IN" | "ID" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "KP" | "KR" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LY" | "LI" | "LT" | "LU" | "MO" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MH" | "MQ" | "MR" | "MU" | "YT" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "MM" | "NA" | "NR" | "NP" | "NL" | "NC" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "MK" | "MP" | "NO" | "OM" | "PK" | "PW" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PN" | "PL" | "PT" | "PR" | "QA" | "RO" | "RU" | "RW" | "RE" | "BL" | "SH" | "KN" | "LC" | "MF" | "PM" | "VC" | "WS" | "SM" | "ST" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SX" | "SK" | "SI" | "SB" | "SO" | "ZA" | "GS" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "SE" | "CH" | "SY" | "TW" | "TJ" | "TZ" | "TH" | "TL" | "TG" | "TK" | "TO" | "TT" | "TN" | "TM" | "TC" | "TV" | "TR" | "UG" | "UA" | "GB" | "UM" | "US" | "UY" | "UZ" | "VU" | "VE" | "VN" | "VG" | "VI" | "WF" | "EH" | "YE" | "ZM" | "ZW")[];
                                                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: {
                                                    "/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[0]/ram:ID/@schemeID": string;
                                                };
                                            };
                                            localIdentifier: {
                                                key: string;
                                                type: "string";
                                                required: false;
                                                description: string;
                                                xpath: string;
                                                additionalXml: {
                                                    "/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[1]/ram:ID/@schemeID": 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" | "XR01" | "XR02" | "XR03")[];
                                                        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" | "CUC" | "CUP" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HRK" | "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" | "SLL" | "SOS" | "SRD" | "SSP" | "STN" | "SVC" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "USN" | "UYI" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XBC" | "XBD" | "XCD" | "XDR" | "XOF" | "XPD" | "XPF" | "XPT" | "XSU" | "XTS" | "XUA" | "XXX" | "YER" | "ZAR" | "ZMW" | "ZWL")[];
                                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" | "CUC" | "CUP" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HRK" | "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" | "SLL" | "SOS" | "SRD" | "SSP" | "STN" | "SVC" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "USN" | "UYI" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XBC" | "XBD" | "XCD" | "XDR" | "XOF" | "XPD" | "XPF" | "XPT" | "XSU" | "XTS" | "XUA" | "XXX" | "YER" | "ZAR" | "ZMW" | "ZWL")[];
                                                description: string;
                                                xpath: string;
                                            };
                                        };
                                    };
                                    grandTotalAmount: {
                                        key: string;
                                        type: "string | number";
                                        description: string;
                                        xpath: string;
                                    };
                                    duePayableAmount: {
                                        key: string;
                                        type: "string | number";
                                        description: string;
                                        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: ("B" | "F" | "S" | "A" | "AA" | "AB" | "AC" | "AD" | "AE" | "C" | "D" | "E" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "O" | "Z")[];
                                        description: string;
                                        xpath: string;
                                    };
                                    exemptionReasonCode: {
                                        key: string;
                                        type: ("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-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-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")[];
                                        description: string;
                                        required: false;
                                        xpath: string;
                                    };
                                    dueDateTypeCode: {
                                        key: string;
                                        type: string[];
                                        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: {
                                            "/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString/@format": string;
                                        };
                                    };
                                    endDate: {
                                        key: string;
                                        type: "date";
                                        description: string;
                                        required: false;
                                        transform: {
                                            input: (date: unknown) => string | undefined;
                                        };
                                        xpath: string;
                                        additionalXml: {
                                            "/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString/@format": 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: string;
        documentFileName: string;
        documentType: "INVOICE";
        version: string;
    } & {
        parse: (ctx: {
            context: BaseZugferdContext;
            data: InferSchema<Profile>;
        }) => any;
        validate: (data: string | Buffer<ArrayBufferLike> | {
            file: string;
        }) => Promise<boolean>;
    })[];
    schema: {
        specificationIdentifier: {
            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" | "AFG" | "AGO" | "AIA" | "ABW" | "AUT" | "BLR" | "BLZ" | "CCK" | "IND" | "MCO" | "PRI" | "BLM" | "SUR" | "TCA" | "ZZZ" | "AAA" | "AAC" | "AAD" | "AAE" | "AAF" | "AAI" | "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" | "AAB" | "AAG" | "AAJ" | "AAK" | "AAL" | "AAM" | "AAN" | "AAO" | "AAP" | "AAQ" | "AAR" | "AAU" | "AAW" | "AAX" | "ABE" | "ABG" | "ABH" | "ABI" | "ABJ" | "ABM" | "ABO" | "ABP" | "ABQ" | "ABV" | "ABX" | "ABZ" | "ACA" | "ACB" | "ACC" | "ACD" | "ACE" | "ACN" | "ACO" | "ACP" | "ACQ" | "ACR" | "ACT" | "ACU" | "ACV" | "ACW" | "ACX" | "ACY" | "ACZ" | "ADA" | "ADB" | "ADD" | "ADF" | "ADG" | "ADH" | "ADI" | "ADS" | "ADU" | "ADV" | "ADX" | "AEE" | "AEG" | "AEQ" | "AER" | "AFA" | "AFB" | "AFC" | "AFD" | "AFE" | "AFF" | "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" | "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" | "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" | "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" | "BLN" | "BLO" | "BLP" | "BLQ" | "BLS" | "BLT" | "BLU" | "BLV" | "BLW" | "BLX" | "BLY" | "BMA" | "BMB" | "BMC" | "BME" | "BMF" | "BMG" | "BMH" | "CCI" | "CCJ" | "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" | "MDH" | "MKS" | "ORI" | "OSI" | "PAC" | "PAI" | "PAY" | "PKG" | "PKT" | "PMD" | "PMT" | "PRD" | "PRF" | "PUR" | "QIN" | "QQD" | "QUT" | "RAH" | "REG" | "RET" | "REV" | "RQR" | "SAF" | "SIC" | "SIN" | "SLR" | "SPA" | "SPG" | "SPH" | "SPP" | "SPT" | "SRN" | "SSR" | "TDT" | "TRA" | "TRR" | "TXD" | "WHI")[];
                    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: ("0021" | "0060" | "0088" | "0177")[];
                                            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: ("0002" | "0007" | "0009" | "0037" | "0060" | "0088" | "0096" | "0097" | "0106" | "0130" | "0135" | "0142" | "0147" | "0151" | "0170" | "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" | "AS" | "AQ" | "AU" | "0217" | "0218" | "0221" | "0230" | "9901" | "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" | "AL" | "DZ" | "AS" | "AO" | "AI" | "AQ" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BM" | "AX" | "BT" | "BO" | "BQ" | "BA" | "BW" | "BV" | "BR" | "IO" | "BN" | "BG" | "BF" | "BI" | "CV" | "KH" | "CM" | "CA" | "KY" | "CF" | "TD" | "CL" | "CN" | "CX" | "CC" | "CO" | "KM" | "CD" | "CG" | "CK" | "CR" | "HR" | "CU" | "CW" | "CY" | "CZ" | "CI" | "DK" | "DJ" | "DM" | "DO" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "SZ" | "ET" | "FK" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "TF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GI" | "GR" | "GL" | "GD" | "GP" | "GU" | "GT" | "GG" | "GN" | "GW" | "GY" | "HT" | "HM" | "VA" | "HN" | "HK" | "HU" | "IS" | "IN" | "ID" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "KP" | "KR" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LY" | "LI" | "LT" | "LU" | "MO" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MH" | "MQ" | "MR" | "MU" | "YT" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "MM" | "NA" | "NR" | "NP" | "NL" | "NC" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "MK" | "MP" | "NO" | "OM" | "PK" | "PW" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PN" | "PL" | "PT" | "PR" | "QA" | "RO" | "RU" | "RW" | "RE" | "BL" | "SH" | "KN" | "LC" | "MF" | "PM" | "VC" | "WS" | "SM" | "ST" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SX" | "SK" | "SI" | "SB" | "SO" | "ZA" | "GS" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "SE" | "CH" | "SY" | "TW" | "TJ" | "TZ" | "TH" | "TL" | "TG" | "TK" | "TO" | "TT" | "TN" | "TM" | "TC" | "TV" | "TR" | "UG" | "UA" | "GB" | "UM" | "US" | "UY" | "UZ" | "VU" | "VE" | "VN" | "VG" | "VI" | "WF" | "EH" | "YE" | "ZM" | "ZW")[];
                                            description: string;
                                            xpath: string;
                                        };
                                        countrySubdivision: {
                                            key: string;
                                            type: "string";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                    };
                                };
                                taxRegistration: {
                                    type: "object";
                                    description: string;
                                    required: false;
                                    shape: {
                                        vatIdentifier: {
                                            type: "string";
                                            description: string;
                                            xpath: string;
                                            additionalXml: {
                                                "/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration[0]/ram:ID/@schemeID": 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" | "XR01" | "XR02" | "XR03")[];
                                            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" | "AL" | "DZ" | "AS" | "AO" | "AI" | "AQ" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BM" | "AX" | "BT" | "BO" | "BQ" | "BA" | "BW" | "BV" | "BR" | "IO" | "BN" | "BG" | "BF" | "BI" | "CV" | "KH" | "CM" | "CA" | "KY" | "CF" | "TD" | "CL" | "CN" | "CX" | "CC" | "CO" | "KM" | "CD" | "CG" | "CK" | "CR" | "HR" | "CU" | "CW" | "CY" | "CZ" | "CI" | "DK" | "DJ" | "DM" | "DO" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "SZ" | "ET" | "FK" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "TF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GI" | "GR" | "GL" | "GD" | "GP" | "GU" | "GT" | "GG" | "GN" | "GW" | "GY" | "HT" | "HM" | "VA" | "HN" | "HK" | "HU" | "IS" | "IN" | "ID" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "KP" | "KR" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LY" | "LI" | "LT" | "LU" | "MO" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MH" | "MQ" | "MR" | "MU" | "YT" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "MM" | "NA" | "NR" | "NP" | "NL" | "NC" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "MK" | "MP" | "NO" | "OM" | "PK" | "PW" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PN" | "PL" | "PT" | "PR" | "QA" | "RO" | "RU" | "RW" | "RE" | "BL" | "SH" | "KN" | "LC" | "MF" | "PM" | "VC" | "WS" | "SM" | "ST" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SX" | "SK" | "SI" | "SB" | "SO" | "ZA" | "GS" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "SE" | "CH" | "SY" | "TW" | "TJ" | "TZ" | "TH" | "TL" | "TG" | "TK" | "TO" | "TT" | "TN" | "TM" | "TC" | "TV" | "TR" | "UG" | "UA" | "GB" | "UM" | "US" | "UY" | "UZ" | "VU" | "VE" | "VN" | "VG" | "VI" | "WF" | "EH" | "YE" | "ZM" | "ZW")[];
                                            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: ("0002" | "0007" | "0009" | "0037" | "0060" | "0088" | "0096" | "0097" | "0106" | "0130" | "0135" | "0142" | "0147" | "0151" | "0170" | "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" | "AS" | "AQ" | "AU" | "0217" | "0218" | "0221" | "0230" | "9901" | "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: {
                                                "/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration[0]/ram:ID/@schemeID": string;
                                            };
                                        };
                                    };
                                };
                            };
                        };
                    };
                };
                tradeDelivery: {
                    key: string;
                    type: "object";
                    shape: {
                        shipTo: {
                            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" | "XR01" | "XR02" | "XR03")[];
                                            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" | "AL" | "DZ" | "AS" | "AO" | "AI" | "AQ" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BM" | "AX" | "BT" | "BO" | "BQ" | "BA" | "BW" | "BV" | "BR" | "IO" | "BN" | "BG" | "BF" | "BI" | "CV" | "KH" | "CM" | "CA" | "KY" | "CF" | "TD" | "CL" | "CN" | "CX" | "CC" | "CO" | "KM" | "CD" | "CG" | "CK" | "CR" | "HR" | "CU" | "CW" | "CY" | "CZ" | "CI" | "DK" | "DJ" | "DM" | "DO" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "SZ" | "ET" | "FK" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "TF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GI" | "GR" | "GL" | "GD" | "GP" | "GU" | "GT" | "GG" | "GN" | "GW" | "GY" | "HT" | "HM" | "VA" | "HN" | "HK" | "HU" | "IS" | "IN" | "ID" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "KP" | "KR" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LY" | "LI" | "LT" | "LU" | "MO" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MH" | "MQ" | "MR" | "MU" | "YT" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "MM" | "NA" | "NR" | "NP" | "NL" | "NC" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "MK" | "MP" | "NO" | "OM" | "PK" | "PW" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PN" | "PL" | "PT" | "PR" | "QA" | "RO" | "RU" | "RW" | "RE" | "BL" | "SH" | "KN" | "LC" | "MF" | "PM" | "VC" | "WS" | "SM" | "ST" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SX" | "SK" | "SI" | "SB" | "SO" | "ZA" | "GS" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "SE" | "CH" | "SY" | "TW" | "TJ" | "TZ" | "TH" | "TL" | "TG" | "TK" | "TO" | "TT" | "TN" | "TM" | "TC" | "TV" | "TR" | "UG" | "UA" | "GB" | "UM" | "US" | "UY" | "UZ" | "VU" | "VE" | "VN" | "VG" | "VI" | "WF" | "EH" | "YE" | "ZM" | "ZW")[];
                                            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: {
                                        "/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString/@format": 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" | "CUC" | "CUP" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HRK" | "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" | "SLL" | "SOS" | "SRD" | "SSP" | "STN" | "SVC" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "USN" | "UYI" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XBC" | "XBD" | "XCD" | "XDR" | "XOF" | "XPD" | "XPF" | "XPT" | "XSU" | "XTS" | "XUA" | "XXX" | "YER" | "ZAR" | "ZMW" | "ZWL")[];
                            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" | "XR01" | "XR02" | "XR03")[];
                                            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" | "XR01" | "XR02" | "XR03")[];
                                                    description: string;
                                                    required: false;
                                                    xpath: string;
                                                };
                                            };
                                        };
                                    };
                                };
                            };
                        };
                        paymentInstruction: {
                            key: string;
                            type: "object";
                            description: string;
                            required: false;
                            shape: {
                                typeCode: {
                                    key: string;
                                    type: ("3" | "1" | "2" | "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" | "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: {
                                        "/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[allowances]/ram:ChargeIndicator/udt:Indicator": string;
                                    };
                                };
                                reasonCode: {
                                    key: string;
                                    type: ("3" | "1" | "2" | "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" | "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" | "71" | "72" | "73" | "74" | "75" | "76" | "77" | "78" | "79" | "80" | "81" | "82" | "83" | "84" | "85" | "86" | "87" | "88" | "89" | "90" | "91" | "92" | "93" | "94" | "95" | "96" | "97" | "98" | "99" | "100" | "101" | "102" | "103" | "104" | "105" | "106")[];
                                    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: ("B" | "F" | "S" | "A" | "AA" | "AB" | "AC" | "AD" | "AE" | "C" | "D" | "E" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "O" | "Z")[];
                                            description: string;
                                            xpath: string;
                                        };
                                        vatRate: {
                                            key: string;
                                            type: "string | number";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                    };
                                    additionalXml: {
                                        "/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[allowances]/ram:CategoryTradeTax/ram:TypeCode": 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: {
                                        "/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[charges]/ram:ChargeIndicator/udt:Indicator": string;
                                    };
                                };
                                reasonCode: {
                                    key: string;
                                    type: ("AA" | "AED" | "CAD" | "AU" | "CA" | "CAN" | "CAF" | "CD" | "CG" | "EG" | "ER" | "FI" | "IS" | "ID" | "IR" | "LA" | "ML" | "PA" | "PL" | "RE" | "SH" | "SM" | "SA" | "SG" | "TT" | "TV" | "ZZZ" | "FC" | "AAA" | "AAC" | "AAD" | "AAE" | "AAF" | "AAH" | "AAI" | "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" | "AJ" | "CAB" | "CAE" | "CAI" | "CAJ" | "CAK" | "CAL" | "CAM" | "CAO" | "CAP" | "CAQ" | "CAR" | "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" | "RAB" | "RAC" | "RAD" | "RAF" | "RF" | "RH" | "RV" | "SAA" | "SAD" | "SAE" | "SAI" | "SU" | "TAB" | "TAC" | "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: ("B" | "F" | "S" | "A" | "AA" | "AB" | "AC" | "AD" | "AE" | "C" | "D" | "E" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "O" | "Z")[];
                                            description: string;
                                            xpath: string;
                                        };
                                        vatRate: {
                                            key: string;
                                            type: "string | number";
                                            description: string;
                                            required: false;
                                            xpath: string;
                                        };
                                    };
                                    additionalXml: {
                                        "/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[charges]/ram:CategoryTradeTax/ram:TypeCode": 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: {
                                        "/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString/@format": 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: {
                                        "/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument[precending-invoices]/ram:FormattedIssueDateTime/qdt:DateTimeString/@format": 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 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 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: "";
                    readonly allowanceTotalAmount: "";
                    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: string;
    documentFileName: string;
    documentType: "INVOICE";
    version: string;
} & {
    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 };
