export interface FuturesKlinesRequest {
    symbol: string;
    start_time: number;
    end_time: number;
    step?: number;
}
/** Get Order Detail - symbol and order_id required. */
export interface GetFuturesOrderRequest {
    symbol: string;
    order_id: string;
    account?: 'futures' | 'copy_trading';
}
/** Cancel Order - symbol required. order_id or client_order_id for specific cancel; omit both to cancel all under symbol. */
export interface CancelFuturesOrderRequest {
    symbol: string;
    order_id?: string;
    client_order_id?: string;
}
/** Cancel Plan Order - symbol required, order_id or client_order_id for specific cancel. */
export interface CancelFuturesPlanOrderRequest {
    symbol: string;
    order_id?: string;
    client_order_id?: string;
}
/** Cancel Trail Order - symbol required, order_id for specific cancel. No client_order_id. */
export interface CancelFuturesTrailOrderRequest {
    symbol: string;
    order_id?: string;
}
export interface FuturesAccountHistoricOrderRequest {
    symbol: string;
    start_time?: number;
    end_time?: number;
    account?: string;
}
export interface FuturesAccountOpenOrdersRequest {
    symbol?: string;
    type?: 'limit' | 'market' | 'trailing';
    order_state?: 'all' | 'partially_filled';
    limit?: number;
}
export interface FuturesAccountPlanOrdersRequest {
    symbol?: string;
    type?: 'limit' | 'market';
    limit?: number;
    plan_type?: 'plan' | 'profit_loss';
}
export interface FuturesAccountTradesRequest {
    symbol?: string;
    start_time?: number;
    end_time?: number;
    account?: string;
    order_id?: number;
    client_order_id?: string;
}
export interface FuturesAccountHistoricTransactionRequest {
    symbol?: string;
    flow_type?: 0 | 1 | 2 | 3 | 4 | 5;
    start_time?: number;
    end_time?: number;
    page_size?: number;
    account?: string;
}
export interface FuturesAccountTransfersRequest {
    currency?: string;
    time_start?: number;
    time_end?: number;
    page: number;
    limit: number;
    recvWindow?: number;
}
export interface SubmitFuturesOrderRequest {
    symbol: string;
    client_order_id?: string;
    side: 1 | 2 | 3 | 4;
    mode?: 1 | 2 | 3 | 4;
    type?: 'limit' | 'market';
    leverage?: string;
    open_type?: 'cross' | 'isolated';
    size: number;
    price?: string;
    preset_take_profit_price_type?: 1 | 2;
    preset_stop_loss_price_type?: 1 | 2;
    preset_take_profit_price?: string;
    preset_stop_loss_price?: string;
    stp_mode?: number;
}
export interface UpdateFuturesLimitOrderRequest {
    symbol: string;
    order_id?: number;
    client_order_id?: string;
    price?: string;
    size?: string;
}
export interface SubmitFuturesPlanOrderRequest {
    symbol: string;
    type?: 'limit' | 'market' | 'take_profit' | 'stop_loss';
    side: 1 | 2 | 3 | 4;
    leverage: string;
    open_type: 'cross' | 'isolated';
    mode?: 1 | 2 | 3 | 4;
    size: number;
    trigger_price: string;
    executive_price?: string;
    price_way: 1 | 2;
    price_type: 1 | 2;
    plan_category?: 1 | 2;
    preset_take_profit_price_type?: 1 | 2;
    preset_stop_loss_price_type?: 1 | 2;
    preset_take_profit_price?: string;
    preset_stop_loss_price?: string;
}
export interface SubmitFuturesTransferRequest {
    currency: string;
    amount: string;
    type: 'spot_to_contract' | 'contract_to_spot';
    recvWindow?: number;
}
export interface SetFuturesLeverageRequest {
    symbol: string;
    leverage?: string;
    open_type: 'cross' | 'isolated';
}
export interface TransferFuturesAssetsRequest {
    requestNo: string;
    amount: string;
    currency: 'USDT';
    subAccount: string;
}
export interface SubmitFuturesSubToMainSubFromSubRequest {
    requestNo: string;
    amount: string;
    currency: 'USDT';
}
export interface FuturesSubWalletRequest {
    subAccount: string;
    currency?: string;
}
export interface FuturesSubTransfersRequest {
    subAccount: string;
    limit: number;
}
export interface FuturesAffiliateRebatesRequest {
    user_id?: number;
    page: number;
    size: number;
    currency: string;
    rebate_start_time?: number;
    rebate_end_time?: number;
    register_start_time?: number;
    register_end_time?: number;
}
export interface FuturesAffiliateTradesRequest {
    user_id?: number;
    page: number;
    type: 1 | 2;
    size: number;
    start_time: number;
    end_time: number;
}
export interface SubmitFuturesTPSLOrderRequest {
    symbol: string;
    type: 'take_profit' | 'stop_loss';
    side: 2 | 3;
    size?: number;
    trigger_price: string;
    executive_price: string;
    price_type: 1 | 2;
    plan_category?: 1 | 2;
    client_order_id?: string;
    category?: 'limit' | 'market';
}
export interface UpdateFuturesPlanOrderRequest {
    symbol: string;
    order_id?: string;
    trigger_price: string;
    executive_price?: string;
    price_type: 1 | 2;
    type: 'limit' | 'market';
}
export interface UpdateFuturesPresetPlanOrderRequest {
    order_id: string;
    symbol: string;
    preset_take_profit_price_type?: 1 | 2;
    preset_stop_loss_price_type?: 1 | 2;
    preset_take_profit_price?: string;
    preset_stop_loss_price?: string;
}
export interface UpdateFuturesTPSLOrderRequest {
    symbol: string;
    order_id?: string;
    client_order_id?: string;
    trigger_price: string;
    executive_price?: string;
    price_type: 1 | 2;
    plan_category?: 1 | 2;
    category?: 'limit' | 'market';
}
export interface SubmitFuturesTrailOrderRequest {
    symbol: string;
    side: 1 | 2 | 3 | 4;
    leverage: string;
    open_type: 'cross' | 'isolated';
    size: number;
    activation_price: string;
    callback_rate: string;
    activation_price_type: 1 | 2;
}
/** GET `contract/private/affiliate/rebate-user` — single user rebate totals. */
export interface FuturesAffiliateRebateUserRequest {
    cid: number;
    start_time: number;
    end_time: number;
}
/** GET `contract/private/affiliate/rebate-inviteUser` — paginated invited customer list. */
export interface FuturesAffiliateRebateInviteUserRequest {
    cid?: number;
    start_time: number;
    end_time: number;
    page: number;
    size: number;
}
/** Affiliate invited users deposit / withdrawal records (max 60 days, size max 50). */
export interface FuturesAffiliateDepositWithdrawalListRequest {
    page: number;
    size: number;
    type?: 1 | 2;
    cid: number;
    start_time: number;
    end_time: number;
}
export interface FuturesAutoRepaymentRequest {
    start_time?: number;
    end_time?: number;
    page?: number;
    size?: number;
    from_coin_code?: string;
    type?: string;
}
export interface FuturesCrossCollateralInterestLogRequest {
    start_time?: number;
    end_time?: number;
    page?: number;
    size?: number;
    coin_code?: string;
}
export interface FuturesAffiliateRebateApiRequest {
    cid: number;
    start_time: number;
    end_time: number;
}
export interface SubmitFuturesSimulatedClaimRequest {
    currency?: string;
    amount?: string;
}
