export type PriceOptions = {
    ico: number;
    iva: number;
    base: number;
    subtotal: number;
    total: number;
    measurementTotal: number;
    externalId?: number;
    maxQuantity?: number;
    discountedExternalId?: number;
    expireDate?: Date | null;
    quantity?: number;
    discount?: number | null;
};
export declare class Price {
    readonly ico: number;
    readonly iva: number;
    readonly base: number;
    readonly subtotal: number;
    readonly total: number;
    readonly measurementTotal: number;
    readonly externalId?: number;
    readonly maxQuantity?: number;
    readonly discountedExternalId?: number;
    readonly expireDate?: Date | null;
    private _quantity?;
    readonly discount?: number | null;
    constructor({ ico, iva, base, subtotal, total, measurementTotal, externalId, maxQuantity, discountedExternalId, expireDate, quantity, discount, }: PriceOptions);
    get isExpired(): boolean;
    /**
     * Set the price quantity until maxQuantity and returns the remaining quantity
     * @param quantity the quantity
     * @returns the remaining quantity
     */
    set quantity(quantity: number | undefined);
    get quantity(): number | undefined;
    /**
     * Calculates the total based on quantity
     *
     * @returns the total * quantity
     */
    get extendedTotal(): number | null;
    /**
     * Calculates the subtotal based on quantity
     *
     * @returns the total * subtotal
     */
    get extendedSubtotal(): number | null;
    static fromPricing(json: any): Price[];
    static fromCatalogue(json: any): Price[];
    toJSON(customerTotal: number): {
        customerTotal: number;
        ico: number;
        iva: number;
        base: number;
        subtotal: number;
        managerSubtotal: number;
        total: number;
        measurementTotal: number;
        externalId: number | undefined;
        maxQuantity: number | undefined;
        discountedExternalId: number | null;
        expireDate: Date | null | undefined;
        quantity: number | undefined;
        discount: number | null;
    };
}
