import { TaxCalculation } from '../../types'; /** * Calculadora especializada para impuestos (IVA, IGV, etc.) */ export declare class TaxCalculator { private decimales; constructor(decimales?: number); /** * Calcula el valor del impuesto basado en el precio base y la tasa * @param basePrice - Precio sin impuestos * @param taxRate - Porcentaje del impuesto (ej: 21 para 21%) * @returns Valor del impuesto calculado * @throws {PricingCalculationError} Si ocurre un error en el cálculo * @example * ```typescript * const calculadora = new TaxCalculator(); * const valorIva = calculadora.calculateTaxAmount(100, 21); // 21 * ``` */ calculateTaxAmount(basePrice: number, taxRate: number): number; /** * Calcula el precio incluyendo impuestos * @param basePrice - Precio sin impuestos * @param taxRate - Porcentaje del impuesto * @returns Precio total con impuestos incluidos * @throws {PricingCalculationError} Si ocurre un error en el cálculo * @example * ```typescript * const precioConIva = calculadora.calculatePriceWithTax(100, 21); // 121 * ``` */ calculatePriceWithTax(basePrice: number, taxRate: number): number; /** * Calcula el precio base a partir de un precio que ya incluye impuestos * @param priceWithTax - Precio que incluye impuestos * @param taxRate - Porcentaje del impuesto aplicado * @returns Precio base sin impuestos * @throws {PricingCalculationError} Si ocurre un error en el cálculo * @example * ```typescript * const precioBase = calculadora.calculateBasePriceFromTaxIncluded(121, 21); // 100 * ``` */ calculateBasePriceFromTaxIncluded(priceWithTax: number, taxRate: number): number; /** * Obtiene los detalles completos del cálculo de impuestos * @param basePrice - Precio sin impuestos * @param taxRate - Porcentaje del impuesto * @returns Objeto con todos los detalles del cálculo * @example * ```typescript * const detalles = calculadora.getTaxCalculationDetails(100, 21); * // { montoBase: 100, taxRate: 21, valorImpuesto: 21, montoTotal: 121 } * ``` */ getTaxCalculationDetails(basePrice: number, taxRate: number): TaxCalculation; }