import { SoftDeleteEntity } from '../entity';
import { Reservation } from '../reservation';
import { Table } from '../room-plan';
import { OrderState } from './enums';
import { OrderItem } from './order-item.model';
export declare class Order extends SoftDeleteEntity<Order> {
    /**
     * 3 letter Currency code
     */
    currencyCode: string;
    /**
     * Total unpaid amount
     * NOTE: Don't set this property directly, should be update by {@link setItems()} and {@link addItem()}
     */
    outstandingAmount: number;
    /**
     * Total paid amount
     * NOTE: Don't set this property directly, should be update by {@link setItems()} and {@link addItem()}
     */
    paidAmount: number;
    /**
     * Base amount without tax
     * NOTE: Don't set this property directly, should be update by {@link setItems()} and {@link addItem()}
     */
    baseAmount: number;
    /**
     * Tax percentage applied on the sub amount
     */
    taxPercentage: number;
    /**
     * Total tax amount calculated from tax percentage
     * NOTE: Don't set this property directly, should be update by {@link setItems()} and {@link addItem()}
     */
    taxAmount: number;
    /**
     * Total amount of the order including tax
     * NOTE: Don't set this property directly, should be update by {@link setItems()} and {@link addItem()}
     */
    totalAmount: number;
    /**
     * The current state of the order
     */
    state: OrderState;
    /**
     * The list of items in the order
     * NOTE: Don't set this directly, instead update items using {@link setItems()} and {@link addItem()} methods
     */
    items: OrderItem[];
    /**
     * The reservation for which order was created
     */
    reservation?: Reservation;
    /**
     * List of tables for the order
     */
    tables: Table[];
    setItems(items: OrderItem[]): void;
    addItem(item: OrderItem): void;
    private updateAmounts;
}
