import type Decimal from "decimal.js";
export type PrivateKey = string;
export type PublicKey = string;
export type Address = string;
export type TokenId = string;
export type AssetName = string;
export type MarketName = string;
export type AssetId = number;
export type MarketId = number;
export type OrderId = bigint;
export type ClientOrderId = bigint;
export type MarketKind = "perp" | "spot";
export type Side = "bid" | "ask";
export type AdminType = "protocol" | "funding" | "pricing" | "fee_tier" | "credits" | "referrals";
export type SpotCollateralTransferDirection = "spot_to_margin" | "margin_to_spot";
export type TriggerDirection = "greater_than_or_equal" | "less_than_or_equal";
export type TriggerPriceCondition = "mark" | "oracle" | "last_trade";
export type OrderType = "limit" | "post_only" | "fill_or_kill" | "immediate_or_cancel" | "post_only_slide" | "post_only_front";
export type MarginType = "initial" | "maintenance";
export type EquityType = "unweighted" | "weighted_initial" | "weighted_maintenance";
export type FeeTier = "tier_0" | "tier_1" | "tier_2" | "tier_3" | "tier_4";
export type Network = "localnet" | "staging" | "testnet" | "mainnet";
export type NewOrderArgs = {
    price: Decimal;
    size: Decimal;
    side: Side;
    orderType: OrderType;
    reduceOnly: boolean;
    clientOrderId?: ClientOrderId;
    pendingTpslPair?: PendingTpslPair;
};
export type AmendOrderArgs = {
    cancel: {
        orderId: OrderId | null;
        clientOrderId: ClientOrderId | null;
    };
    place: NewOrderArgs;
};
export type OraclePriceUpdateArgs = {
    asset: AssetName;
    oraclePrice: Decimal;
};
export type MarkPriceUpdateArgs = {
    market: MarketName;
    medianCexPrice: Decimal;
    diffEma: Decimal;
};
export type Tpsl = {
    orderPrice: Decimal;
    triggerPrice: Decimal;
    priceCondition: TriggerPriceCondition;
    orderType: OrderType;
};
export type TpslPair = {
    tp?: Tpsl;
    sl?: Tpsl;
};
export type PendingTpslPair = {
    tpslPair: TpslPair;
    dynamicSize: boolean;
};
export type MarketMetadata = {
    id: MarketId;
    kind: MarketKind;
    baseAssetId: AssetId;
    name: MarketName;
};
export type NewTwapOrderArgs = {
    side: Side;
    totalSize: Decimal;
    reduceOnly: boolean;
    totalDurationSeconds: number;
};
//# sourceMappingURL=types.d.ts.map