/**
 * Account and trading types for Binance Futures API
 */
import { OrderSideType, OrderTypeType, TimeInForceType, PositionSideType, OrderStatusType, WorkingTypeType, ResponseTypeType } from './base';
export interface AccountInfo {
    feeTier: number;
    canTrade: boolean;
    canDeposit: boolean;
    canWithdraw: boolean;
    updateTime: number;
    multiAssetsMargin: boolean;
    tradeGroupId: number;
    totalInitialMargin: string;
    totalMaintMargin: string;
    totalWalletBalance: string;
    totalUnrealizedProfit: string;
    totalMarginBalance: string;
    totalPositionInitialMargin: string;
    totalOpenOrderInitialMargin: string;
    totalCrossWalletBalance: string;
    totalCrossUnPnl: string;
    availableBalance: string;
    maxWithdrawAmount: string;
    assets: AccountAsset[];
    positions: AccountPosition[];
}
export interface AccountAsset {
    asset: string;
    walletBalance: string;
    unrealizedProfit: string;
    marginBalance: string;
    maintMargin: string;
    initialMargin: string;
    positionInitialMargin: string;
    openOrderInitialMargin: string;
    crossWalletBalance: string;
    crossUnPnl: string;
    availableBalance: string;
    maxWithdrawAmount: string;
    marginAvailable: boolean;
    updateTime: number;
}
export interface AccountPosition {
    symbol: string;
    initialMargin: string;
    maintMargin: string;
    unrealizedProfit: string;
    positionInitialMargin: string;
    openOrderInitialMargin: string;
    leverage: string;
    isolated: boolean;
    entryPrice: string;
    maxNotional: string;
    bidNotional: string;
    askNotional: string;
    positionSide: PositionSideType;
    positionAmt: string;
    updateTime: number;
}
export interface Balance {
    accountAlias: string;
    asset: string;
    balance: string;
    crossWalletBalance: string;
    crossUnPnl: string;
    availableBalance: string;
    maxWithdrawAmount: string;
    marginAvailable: boolean;
    updateTime: number;
}
export interface PositionRisk {
    symbol: string;
    positionAmt: string;
    entryPrice: string;
    markPrice: string;
    unRealizedProfit: string;
    liquidationPrice: string;
    leverage: string;
    maxNotionalValue: string;
    marginType: string;
    isolatedMargin: string;
    isAutoAddMargin: string;
    positionSide: PositionSideType;
    notional: string;
    isolatedWallet: string;
    updateTime: number;
}
export interface Order {
    orderId: number;
    symbol: string;
    status: OrderStatusType;
    clientOrderId: string;
    price: string;
    avgPrice: string;
    origQty: string;
    executedQty: string;
    cumQty: string;
    cumQuote: string;
    timeInForce: TimeInForceType;
    type: OrderTypeType;
    reduceOnly: boolean;
    closePosition: boolean;
    side: OrderSideType;
    positionSide: PositionSideType;
    stopPrice: string;
    workingType: WorkingTypeType;
    priceProtect: boolean;
    origType: OrderTypeType;
    time: number;
    updateTime: number;
}
export interface Trade {
    symbol: string;
    id: number;
    orderId: number;
    side: OrderSideType;
    qty: string;
    price: string;
    quoteQty: string;
    realizedPnl: string;
    marginAsset: string;
    commission: string;
    commissionAsset: string;
    time: number;
    positionSide: PositionSideType;
    buyer: boolean;
    maker: boolean;
}
export interface Income {
    symbol: string;
    incomeType: string;
    income: string;
    asset: string;
    info: string;
    time: number;
    tranId: string;
    tradeId: string;
}
export interface NotionalAndLeverageBracket {
    symbol: string;
    brackets: LeverageBracket[];
}
export interface LeverageBracket {
    bracket: number;
    initialLeverage: number;
    notionalCap: number;
    notionalFloor: number;
    maintMarginRatio: number;
    cum: number;
}
export interface ADLQuantile {
    symbol: string;
    adlQuantile: {
        LONG: number;
        SHORT: number;
        HEDGE: number;
    };
}
export interface ForceOrder {
    orderId: number;
    symbol: string;
    status: OrderStatusType;
    clientOrderId: string;
    price: string;
    avgPrice: string;
    origQty: string;
    executedQty: string;
    cumQuote: string;
    timeInForce: TimeInForceType;
    type: OrderTypeType;
    reduceOnly: boolean;
    closePosition: boolean;
    side: OrderSideType;
    positionSide: PositionSideType;
    stopPrice: string;
    workingType: WorkingTypeType;
    origType: OrderTypeType;
    time: number;
    updateTime: number;
}
export interface QuantitativeTradingRules {
    indicators: {
        IFER: string;
        UFR: string;
        GCR: string;
        DR: string;
    };
    updateTime: number;
}
export interface NewOrderParams {
    symbol: string;
    side: OrderSideType;
    positionSide?: PositionSideType;
    type: OrderTypeType;
    timeInForce?: TimeInForceType;
    quantity?: string;
    reduceOnly?: boolean;
    price?: string;
    newClientOrderId?: string;
    stopPrice?: string;
    closePosition?: boolean;
    activationPrice?: string;
    callbackRate?: string;
    workingType?: WorkingTypeType;
    priceProtect?: boolean;
    newOrderRespType?: ResponseTypeType;
    priceMatch?: 'OPPONENT' | 'OPPONENT_5' | 'OPPONENT_10' | 'OPPONENT_20' | 'QUEUE' | 'QUEUE_5' | 'QUEUE_10' | 'QUEUE_20';
    selfTradePreventionMode?: 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'NONE';
    goodTillDate?: number;
    recvWindow?: number;
    timestamp?: number;
}
export interface ModifyOrderParams {
    orderId?: number;
    origClientOrderId?: string;
    symbol: string;
    side: OrderSideType;
    quantity: string;
    price: string;
    priceMatch?: 'OPPONENT' | 'OPPONENT_5' | 'OPPONENT_10' | 'OPPONENT_20' | 'QUEUE' | 'QUEUE_5' | 'QUEUE_10' | 'QUEUE_20';
    recvWindow?: number;
    timestamp?: number;
}
export interface CancelOrderParams {
    symbol: string;
    orderId?: number;
    origClientOrderId?: string;
    recvWindow?: number;
    timestamp?: number;
}
export interface CancelAllOrdersParams {
    symbol: string;
    recvWindow?: number;
    timestamp?: number;
}
export interface CancelMultipleOrdersParams {
    symbol: string;
    orderIdList?: number[];
    origClientOrderIdList?: string[];
    recvWindow?: number;
    timestamp?: number;
}
export interface GetOrderParams {
    symbol: string;
    orderId?: number;
    origClientOrderId?: string;
    recvWindow?: number;
    timestamp?: number;
}
export interface GetAllOrdersParams {
    symbol: string;
    orderId?: number;
    startTime?: number;
    endTime?: number;
    limit?: number;
    recvWindow?: number;
    timestamp?: number;
}
export interface GetAllOpenOrdersParams {
    symbol?: string;
    recvWindow?: number;
    timestamp?: number;
}
export interface GetAccountTradesParams {
    symbol: string;
    startTime?: number;
    endTime?: number;
    fromId?: number;
    limit?: number;
    recvWindow?: number;
    timestamp?: number;
}
export interface GetIncomeHistoryParams {
    symbol?: string;
    incomeType?: 'TRANSFER' | 'WELCOME_BONUS' | 'REALIZED_PNL' | 'FUNDING_FEE' | 'COMMISSION' | 'INSURANCE_CLEAR' | 'REFERRAL_KICKBACK' | 'COMMISSION_REBATE' | 'API_REBATE' | 'CONTEST_REWARD' | 'CROSS_COLLATERAL_TRANSFER' | 'OPTIONS_PREMIUM_FEE' | 'OPTIONS_SETTLE_PROFIT' | 'INTERNAL_TRANSFER' | 'AUTO_EXCHANGE' | 'DELIVERED_SETTELMENT' | 'COIN_SWAP_DEPOSIT' | 'COIN_SWAP_WITHDRAW' | 'POSITION_LIMIT_INCREASE_FEE';
    startTime?: number;
    endTime?: number;
    limit?: number;
    recvWindow?: number;
    timestamp?: number;
}
export interface GetNotionalAndLeverageBracketParams {
    symbol?: string;
    recvWindow?: number;
    timestamp?: number;
}
export interface GetADLQuantileParams {
    symbol?: string;
    recvWindow?: number;
    timestamp?: number;
}
export interface GetForceOrdersParams {
    symbol?: string;
    autoCloseType?: 'LIQUIDATION' | 'ADL';
    startTime?: number;
    endTime?: number;
    limit?: number;
    recvWindow?: number;
    timestamp?: number;
}
export interface ChangeInitialLeverageParams {
    symbol: string;
    leverage: number;
    recvWindow?: number;
    timestamp?: number;
}
export interface ChangeMarginTypeParams {
    symbol: string;
    marginType: 'ISOLATED' | 'CROSSED';
    recvWindow?: number;
    timestamp?: number;
}
export interface ModifyIsolatedPositionMarginParams {
    symbol: string;
    positionSide?: PositionSideType;
    amount: string;
    type: 1 | 2;
    recvWindow?: number;
    timestamp?: number;
}
export interface GetPositionMarginChangeHistoryParams {
    symbol: string;
    type?: 1 | 2;
    startTime?: number;
    endTime?: number;
    limit?: number;
    recvWindow?: number;
    timestamp?: number;
}
export interface ChangePositionModeParams {
    dualSidePosition: boolean;
    recvWindow?: number;
    timestamp?: number;
}
export interface ChangeMultiAssetsMarginParams {
    multiAssetsMargin: boolean;
    recvWindow?: number;
    timestamp?: number;
}
//# sourceMappingURL=account.d.ts.map