import { BaseModel } from './base-model';
import { Item } from './item';
import { Price } from './price';
import { TaxTotal } from './tax-total';
/**
 * Represents an invoice line
 */
export declare class InvoiceLine extends BaseModel {
    private _id;
    private _quantity;
    private _unitCode;
    private _lineExtensionAmount;
    private _discountRate;
    private _discountAmount;
    private _item;
    private _price;
    private _taxTotal;
    get id(): number;
    set id(value: number);
    get quantity(): number;
    set quantity(value: number);
    get unitCode(): string;
    set unitCode(value: string);
    get lineExtensionAmount(): number;
    get discountRate(): number;
    set discountRate(value: number);
    get discountAmount(): number;
    get item(): Item;
    set item(value: Item);
    get price(): Price;
    set price(value: Price);
    get taxTotal(): TaxTotal;
    set taxTotal(value: TaxTotal);
    /**
     * Updates the calculations for the invoice line
     */
    private updateCalculations;
    /**
     * Sets the tax rate and updates calculations
     * @param taxRate The tax rate to set
     * @param taxType The tax type (e.g., 'S', 'Z', 'E', etc.)
     * @param taxExemptionReason The reason for tax exemption (if applicable)
     */
    setTax(taxRate: number, taxType: string, taxExemptionReason?: string): void;
    /**
     * Converts the invoice line to a JSON representation
     */
    toJSON(): any;
}
