import type { Price } from '../money/price.js'; /** * Builds a rounded {@link Price} from a unit price and quantity. * * The unit price is multiplied by the quantity using decimal arithmetic to avoid * floating-point rounding errors, then rounded down to the currency's scale. * * @param unitPrice - The price per unit (e.g. per kWh, per minute, or a flat fee). Returns undefined when null. * @param currency - The ISO currency code used for arithmetic and rounding. * @param taxRate - Optional tax rate as a percentage; when set, populates `incl_vat`. * @param quantity - The number of units to multiply by. Defaults to 1. * @returns The rounded price, or undefined when `unitPrice` is null. */ export declare function buildPrice(unitPrice: number | undefined, currency: string, taxRate?: number | null, quantity?: number): Price | undefined; /** * Sums a set of already-rounded Prices into one Price, so the * resulting total always reconciles against the sum of its own components. */ export declare function sumPrices(currency: string, prices: (Price | undefined)[]): Price; export declare function baseCalculateFixedCost(flatFee: number | null | undefined, currency: string, taxRate?: number | null): Price | undefined; export declare function baseCalculateEnergyCost(totalKwh: number, feePerKwh: number | null | undefined, currency: string, taxRate?: number | null): Price | undefined; export declare function baseCalculateTimeCost(totalMinutes: number, feePerMinute: number | null | undefined, currency: string, taxRate?: number | null): Price | undefined; export declare function baseCalculateTotalCost(totalKwh: number, totalMinutes: number, tariffPerSession: number | null | undefined, tariffPerKwh: number | null | undefined, tariffPerMinute: number | null | undefined, currency: string, taxRate?: number | null): Price;