/**
 * Thin async wrapper around sales-tax v2.23.0 for offline VAT/GST/sales tax.
 *
 * Provides standalone functions for country-level tax rate lookup and
 * amount-with-tax calculation. Not wired into TaxCalculator — callers
 * opt in.
 *
 * sales-tax API: getSalesTax(countryCode, stateCode?, taxNumber?)
 * Returns: { type, rate, currency, area, charge, details }
 */
import { z } from "zod";
export declare const SalesTaxConfigSchema: z.ZodObject<{
    originCountry: z.ZodDefault<z.ZodString>;
    useRegionalTax: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
export type SalesTaxConfig = z.infer<typeof SalesTaxConfigSchema>;
export declare const DEFAULTS: SalesTaxConfig;
export interface SalesTaxRateResult {
    /** Tax type: "gst" | "vat" | "none" */
    type: string;
    /** Tax rate as decimal (e.g. 0.15 for 15%) */
    rate: number;
    /** Currency code or null */
    currency: string | null;
    /** Applicable area */
    area: string;
    /** Exchange type */
    exchange: string;
    /** Charge info */
    charge: {
        direct: boolean;
        reverse: boolean;
    };
    /** Breakdown of tax components */
    details: Array<{
        type: string;
        rate: number;
    }>;
}
/**
 * Reset initialization — useful for testing with different configs
 */
export declare function resetSalesTaxInstance(): void;
/**
 * Get sales tax rate information for a country.
 *
 * Async because sales-tax API is async (supports optional VAT fraud checks).
 *
 * @param countryCode - ISO 3166-1 alpha-2 country code (e.g. "IE", "NZ")
 * @param config - Optional config (only used on first call)
 * @returns Tax rate info including type, rate, currency, charge details
 *
 * @example
 * const tax = await getSalesTaxForCountry("NZ");
 * // => { type: "gst", rate: 0.15, currency: "NZD", ... }
 */
export declare function getSalesTaxForCountry(countryCode: string, config?: Partial<SalesTaxConfig>): Promise<SalesTaxRateResult>;
/**
 * Get total amount after applying sales tax for a country.
 *
 * @param countryCode - ISO 3166-1 alpha-2 country code
 * @param amount - Base amount before tax
 * @param stateCode - Optional state/province code
 * @param config - Optional config (only used on first call)
 * @returns Object with price (original), total (with tax), rate, type, currency
 *
 * @example
 * const r = await getAmountWithSalesTax("NZ", 100);
 * // => { price: 100, total: 115, rate: 0.15, type: "gst", currency: "NZD" }
 */
export declare function getAmountWithSalesTax(countryCode: string, amount: number, stateCode?: string, config?: Partial<SalesTaxConfig>): Promise<{
    price: number;
    total: number;
    rate: number;
    type: string;
    currency: string | null;
}>;
/**
 * Check if a country has sales tax
 */
export declare function hasSalesTax(countryCode: string): boolean;
/**
 * Format a sales tax rate as a human-readable percentage string
 *
 * @example
 * formatTaxRate(0.15) // => "15%"
 */
export declare function formatTaxRate(rate: number): string;
//# sourceMappingURL=sales-tax-integration.d.ts.map