export interface NonResidentRule { /** ISO 3166-1 alpha-2. */ country: string; /** * When a B2C obligation starts for a supplier with no establishment there. * * `"first-sale"` means no threshold at all — the obligation exists from the first * consumer sale, so it is the one case a library can act on without knowing your * turnover. A `{ amount, currency }` threshold can only ever be a warning: whether * you have crossed it is a fact about your books. */ b2cThreshold: "first-sale" | { amount: number; currency: string; }; /** * Does a B2B supply shift to the customer, so no registration is needed for it? * * True nearly everywhere digital services are taxed, and the reason "can I sell * there" usually has different answers for businesses and consumers. */ b2bReverseCharge: boolean; /** The registration scheme's name, as that country calls it. */ scheme?: string; /** Why we believe this. A rule with no source is a rumour. */ source: string; /** ISO date this entry was last read against the source. */ reviewed: string; /** What a report should tell someone who has customers here. */ note?: string; } /** * The rules, keyed by country. * * ⚠️ These change. When you update one, move `reviewed` and keep `source` pointing at * something citable. When you ADD one, read the primary source — a blog post repeating * a threshold from three years ago is how a wrong number gets into a charge. */ export declare const NON_RESIDENT_RULES: readonly NonResidentRule[]; /** * The rule for a country, or undefined when this library makes no claim about it. * * Undefined is NOT "no obligation" — most of the world taxes non-resident digital * services somewhere, and the entries here are the ones that have been read. Treat it as * "unknown", which is what the doctor does. */ export declare function nonResidentRule(country: string | null | undefined): NonResidentRule | undefined; /** Countries where the obligation starts at the first consumer sale — the only ones a * library can be certain about without seeing your turnover. */ export declare function zeroThresholdCountries(): string[]; /** How a threshold reads in a report. */ export declare function describeThreshold(rule: NonResidentRule): string; //# sourceMappingURL=tax-obligations.d.ts.map