import { DiscountCalculation } from '../../types'; /** * Calculadora especializada para descuentos */ export declare class DiscountCalculator { private decimales; constructor(decimales?: number); /** * Calcula el valor del descuento a partir del porcentaje * @param originalPrice - Precio antes del descuento * @param discountPercentage - Porcentaje de descuento a aplicar (0-100) * @returns Valor del descuento en moneda * @throws {PricingCalculationError} Si ocurre un error en el cálculo * @example * ```typescript * const valorDescuento = calculadora.calculateDiscountAmount(100, 10); // 10 * ``` */ calculateDiscountAmount(originalPrice: number, discountPercentage: number): number; /** * Aplica un descuento al precio original * @param originalPrice - Precio antes del descuento * @param discountPercentage - Porcentaje de descuento a aplicar * @returns Precio final después del descuento * @throws {PricingCalculationError} Si ocurre un error en el cálculo * @example * ```typescript * const precioConDescuento = calculadora.applyDiscount(100, 10); // 90 * ``` */ applyDiscount(originalPrice: number, discountPercentage: number): number; /** * Calcula el porcentaje de descuento a partir de los valores * @param originalPrice - Precio antes del descuento * @param discountAmount - Valor del descuento aplicado * @returns Porcentaje de descuento * @throws {PricingCalculationError} Si ocurre un error en el cálculo * @example * ```typescript * const porcentaje = calculadora.calculateDiscountPercentage(100, 10); // 10 * ``` */ calculateDiscountPercentage(originalPrice: number, discountAmount: number): number; /** * Obtiene los detalles completos del cálculo de descuento * @param originalPrice - Precio antes del descuento * @param discountPercentage - Porcentaje de descuento a aplicar * @returns Objeto con todos los detalles del cálculo * @example * ```typescript * const detalles = calculadora.getDiscountCalculationDetails(100, 10); * // { originalPrice: 100, discountRate: 10, discountAmount: 10, finalPrice: 90 } * ``` */ getDiscountCalculationDetails(originalPrice: number, discountPercentage: number): DiscountCalculation; }