import { OrderType, OrderSide, OrderTimeInForce } from '@dydxprotocol/v4-client-js';
export interface DydxOrderParams {
    market: string;
    type: OrderType;
    side: OrderSide;
    timeInForce?: OrderTimeInForce;
    timeInForceSeconds?: number;
    postOnly?: boolean;
    price: number;
    size: number;
}
export interface SubaccountTransferParams {
    fromId: number;
    toId: number;
    amount: number;
}
export interface DydxSetPosition {
    market: string;
    size: number;
}
export interface DydxCancelOrderParams {
    clientId: number;
    market: string;
}
export interface DydxOrder {
    price: number;
    size: number;
}
export interface DydxOrderbook {
    bids: DydxOrder[];
    asks: DydxOrder[];
}
export interface PerpetualPosition {
    market: string;
    status: string;
    side: string;
    size: string;
    maxSize: string;
    entryPrice: string;
    exitPrice: string;
    realizedPnl: string;
    unrealizedPnl: string;
    createdAt: string;
    createdAtHeight: string;
    closedAt: string | null;
    sumOpen: string;
    sumClose: string;
    netFunding: string;
    subaccountNumber: number;
}
export interface AssetPosition {
    size: string;
    symbol: string;
    side: string;
    assetId: string;
    subaccountNumber: number;
}
export interface DydxSubaccount {
    address: string;
    subaccountNumber: number;
    equity: string;
    freeCollateral: string;
    openPerpetualPositions: {
        [key: string]: PerpetualPosition;
    };
    assetPositions: {
        [key: string]: AssetPosition;
    };
    marginEnabled: boolean;
    updatedAtHeight: string;
    latestProcessedBlockHeight: string;
}
export interface MarketSpread {
    bestBid: {
        price: number;
        size: number;
    };
    bestAsk: {
        price: number;
        size: number;
    };
}
export interface PerpetualMarket {
    clobPairId: string;
    ticker: string;
    status: string;
    oraclePrice: string;
    priceChange24H: string;
    volume24H: string;
    trades24H: string;
    nextFundingRate: string;
    initialMarginFraction: string;
    maintenanceMarginFraction: string;
    basePositionNotional: string;
    openInterest: string;
    atomicResolution: string;
    quantumConversionExponent: string;
    tickSize: string;
    stepSize: string;
    stepBaseQuantums: string;
    subticksPerTick: string;
}
export interface MarketTrade {
    id: string;
    side: string;
    size: string;
    price: string;
    createdAt: string;
    type: string;
}
export interface Candle {
    startedAt: string;
    ticker: string;
    resolution: string;
    low: string;
    high: string;
    open: string;
    close: string;
    baseTokenVolume: string;
    usdVolume: string;
    trades: string;
}
export interface FundingRate {
    ticker: string;
    rate: string;
    effectiveAt: string;
    effectiveAtHeight: string;
}
export interface Sparkline {
    ticker: string;
    prices: string[];
    times: string[];
}
