import { aM as Money, ab as CurrencyCode, aV as PricePathTaxInfo, aX as Product, b9 as ProductWithDetails, bc as QuantityPricingTier } from './product-DXhjLQ_w.js';
import { P as ProductWithPrice } from './price-B8WMoldA.js';
import { b as PaymentErrorDetails, g as PaymentResponse, i as PaymentStatusResponse } from './payment-nH9OCUg2.js';
import { CountryCode } from 'libphonenumber-js';

declare const CURRENCY_SYMBOLS: Record<string, string>;
declare function getCurrencySymbol(currencyCode: CurrencyCode): string;
declare function formatNumberCompact(value: number, decimals?: number): string;
declare function formatPrice(amount: number | Money, currency?: CurrencyCode, locale?: string): string;
declare function formatPriceAdjustment(amount: number, currency?: CurrencyCode, locale?: string): string;
declare function formatPriceCompact(amount: number | Money, currency?: CurrencyCode, decimals?: number): string;
declare function formatMoney(amount: Money | number, currency?: CurrencyCode): string;
declare function parsePrice(value: Money | string | number | undefined | null): number;
declare function hasTaxInfo(priceInfo: {
    tax_info?: PricePathTaxInfo;
}): boolean;
declare function getTaxAmount(priceInfo: {
    tax_info?: PricePathTaxInfo;
}): number;
declare function isTaxInclusive(priceInfo: {
    tax_info?: PricePathTaxInfo;
}): boolean;
declare function formatPriceWithTax(priceInfo: {
    final_price: Money;
    tax_info?: PricePathTaxInfo;
}, currency?: CurrencyCode): string;
declare function getDisplayPrice(product: ProductWithPrice): number;
declare function getBasePrice(product: ProductWithPrice): number;
declare function isOnSale(product: ProductWithPrice): boolean;
declare function getDiscountPercentage(product: ProductWithPrice): number;
declare function getMarkupPercentage(product: ProductWithPrice): number;
declare function getProductCurrency(product: ProductWithPrice): CurrencyCode;
declare function formatProductPrice(product: ProductWithPrice, locale?: string): string;
declare function getUnitPriceAtQuantity(tiers: QuantityPricingTier[], quantity: number, fallback: number): number;
declare function getPriceRange(product: Product | ProductWithDetails): {
    min: number;
    max: number;
} | null;
declare function formatPriceRange(min: number, max: number, currency?: CurrencyCode): string;

declare function categorizePaymentError(error: Error, errorCode?: string): PaymentErrorDetails;
declare function normalizePaymentResponse(response: unknown): PaymentResponse;
declare function isPaymentStatusSuccess(status: string | undefined): boolean;
declare function isPaymentStatusFailure(status: string | undefined): boolean;
declare function isPaymentStatusRequiresAction(status: string | undefined): boolean;
declare function normalizeStatusResponse(response: unknown): PaymentStatusResponse;
declare const MOBILE_MONEY_PROVIDERS: {
    readonly mtn: {
        readonly name: "MTN Mobile Money";
        readonly prefix: readonly ["024", "025", "053", "054", "055", "059"];
    };
    readonly vodafone: {
        readonly name: "Telecel Cash";
        readonly prefix: readonly ["020", "050"];
    };
    readonly airtel: {
        readonly name: "AirtelTigo Money";
        readonly prefix: readonly ["026", "027", "056", "057"];
    };
};
declare function detectMobileMoneyProvider(phoneNumber: string): "mtn" | "vodafone" | "airtel" | null;

interface PhoneNormalizationOptions {
    country?: string | null;
    currency?: string | null;
}
declare function resolvePhoneCountryCode(options?: PhoneNormalizationOptions): CountryCode | undefined;
declare function normalizePhoneToE164(raw: string, options?: PhoneNormalizationOptions): string | null;
declare function isValidPhoneForContext(raw: string, options?: PhoneNormalizationOptions): boolean;

export { normalizePaymentResponse as A, normalizePhoneToE164 as B, CURRENCY_SYMBOLS as C, normalizeStatusResponse as D, parsePrice as E, resolvePhoneCountryCode as F, MOBILE_MONEY_PROVIDERS as M, formatNumberCompact as a, formatPrice as b, categorizePaymentError as c, detectMobileMoneyProvider as d, formatPriceAdjustment as e, formatMoney as f, formatPriceCompact as g, formatPriceRange as h, formatPriceWithTax as i, formatProductPrice as j, getBasePrice as k, getCurrencySymbol as l, getDiscountPercentage as m, getDisplayPrice as n, getMarkupPercentage as o, getPriceRange as p, getProductCurrency as q, getTaxAmount as r, getUnitPriceAtQuantity as s, hasTaxInfo as t, isOnSale as u, isPaymentStatusFailure as v, isPaymentStatusRequiresAction as w, isPaymentStatusSuccess as x, isTaxInclusive as y, isValidPhoneForContext as z };
