import { PerpetualsAccount } from "../..";
import { Caller } from "../../general/utils/caller";
import { CoinType, PerpetualsMarketId, PerpetualsMarketParams, PerpetualsMarketState, PerpetualsOrderData, PerpetualsOrderId, PerpetualsOrderPrice, PerpetualsOrderSide, PerpetualsOrderbook, Timestamp, PerpetualsMarketData, ApiPerpetualsMarket24hrVolumeResponse, ApiDataWithCursorBody, PerpetualsTradeHistoryWithCursor, CallerConfig } from "../../types";
export declare class PerpetualsMarket extends Caller {
    marketData: PerpetualsMarketData;
    readonly marketId: PerpetualsMarketId;
    readonly collateralCoinType: CoinType;
    readonly marketParams: PerpetualsMarketParams;
    readonly marketState: PerpetualsMarketState;
    constructor(marketData: PerpetualsMarketData, config?: CallerConfig);
    getOrderbookPrice(): Promise<number | undefined>;
    get24hrVolume(): Promise<ApiPerpetualsMarket24hrVolumeResponse>;
    getPrice24hrsAgo(): Promise<number>;
    getOrderbook(): Promise<PerpetualsOrderbook>;
    getMaxOrderSizeUsd: (inputs: {
        account: PerpetualsAccount;
        indexPrice: number;
        side: PerpetualsOrderSide;
        leverage: number;
        price?: PerpetualsOrderPrice;
    }) => Promise<number>;
    getTradeHistory(inputs: ApiDataWithCursorBody<Timestamp>): Promise<PerpetualsTradeHistoryWithCursor>;
    timeUntilNextFundingMs: () => Timestamp;
    nextFundingTimeMs: () => Timestamp;
    estimatedFundingRate: (inputs: {
        indexPrice: number;
    }) => number;
    priceToOrderPrice: (inputs: {
        price: number;
    }) => PerpetualsOrderPrice;
    orderPriceToPrice: (inputs: {
        orderPrice: PerpetualsOrderPrice;
    }) => number;
    calcCollateralUsedForOrder: (inputs: {
        leverage: number;
        orderData: PerpetualsOrderData;
        indexPrice: number;
        collateralPrice: number;
    }) => {
        collateral: number;
        collateralUsd: number;
    };
    lotSize(): number;
    tickSize(): number;
    maxLeverage(): number;
    initialMarginRatio(): number;
    maintenanceMarginRatio(): number;
    orderPrice(inputs: {
        orderId: PerpetualsOrderId;
    }): number;
    roundToValidPrice: (inputs: {
        price: number;
    }) => number;
    roundToValidSize: (inputs: {
        size: number;
        floor?: boolean;
        ceil?: boolean;
    }) => number;
}
//# sourceMappingURL=perpetualsMarket.d.ts.map