import BigNumber from "bignumber.js";
import createRBTree from "functional-red-black-tree";
import { type LimitOrder } from "./order";
import { OrderQueue } from "./orderqueue";
import { type OrderUpdatePrice, type OrderUpdateSize, Side } from "./types";
export declare class OrderSide {
    private _priceTree;
    private _prices;
    private _volume;
    private _total;
    private _numOrders;
    private _depthSide;
    private readonly _side;
    constructor(side: Side);
    len: () => BigNumber;
    depth: () => BigNumber;
    volume: () => BigNumber;
    total: () => BigNumber;
    priceTree: () => createRBTree.Tree<BigNumber, OrderQueue>;
    append: (order: LimitOrder) => LimitOrder;
    remove: (order: LimitOrder) => LimitOrder;
    updateOrderPrice: (oldOrder: LimitOrder, orderUpdate: OrderUpdatePrice) => LimitOrder;
    updateOrderSize: (oldOrder: LimitOrder, orderUpdate: OrderUpdateSize) => LimitOrder;
    maxPriceQueue: () => OrderQueue | undefined;
    minPriceQueue: () => OrderQueue | undefined;
    lowerThan: (price: BigNumber) => OrderQueue | undefined;
    greaterThan: (price: BigNumber) => OrderQueue | undefined;
    orders: () => LimitOrder[];
    toString: () => string;
}
