import { XAPI } from '../XAPI'; import { TradeStatus } from '../../interface/Interface'; import { Time } from '../../utils/Time'; import { OpenPosition } from './OpenPosition'; import { LimitPosition } from './LimitPosition'; import { REQUEST_STATUS_FIELD } from '../../interface/Enum'; import { TradeRecord } from '../TradeRecord'; import { TRADE_TRANS_INFO, TRADE_TRANS_INFO_CLOSE, TRADE_TRANS_INFO_DELETE, TRADE_TRANS_INFO_MODIFY } from "../../interface/Definitions"; import { Transaction } from "../Transaction"; import { tradeTransactionResponse, tradeTransactionStatusResponse } from "../../interface/Response"; export interface Orders { [order: number]: { order: number; resolve: ((data: TradeStatus) => void) | undefined; reject: ((error: any) => void) | undefined; data: TradeStatus | null; createdAt: Time; }; } export declare class Trading { private XAPI; private _positions; private _positionsUpdated; pendingOrders: Orders; constructor(XAPI: XAPI, callListener: (listenerId: string, params: any[]) => void); buy({ symbol, volume, tp, sl, customComment, limit, expiration }: { symbol: string; volume: number; tp?: number | undefined; sl?: number | undefined; customComment?: string | null; limit?: number | undefined; expiration?: number | undefined; }): { transaction: Promise<{ transaction: Transaction, Record>; data: { returnData: tradeTransactionResponse; jsonReceived: Time; json: string; }; }>; transactionStatus: Promise; }; sell({ symbol, volume, tp, sl, customComment, limit, expiration }: { symbol: string; volume: number; tp?: number | undefined; sl?: number | undefined; customComment?: string | null; limit?: number | undefined; expiration?: number | undefined; }): { transaction: Promise<{ transaction: Transaction, Record>; data: { returnData: tradeTransactionResponse; jsonReceived: Time; json: string; }; }>; transactionStatus: Promise; }; modify(modify: { order: number; expiration?: number | Date | null | undefined; offset?: number | null | undefined; price?: number | undefined; sl?: number | null | undefined; tp?: number | null | undefined; volume?: number; customComment?: string | null | undefined; }): { transaction: Promise<{ transaction: Transaction, Record>; data: { returnData: tradeTransactionResponse; jsonReceived: Time; json: string; }; }>; transactionStatus: Promise; } | Promise; close({ order, volume, customComment, expiration }: { order: number; volume?: number | undefined; customComment?: string | undefined; expiration?: number | undefined; }): { transaction: Promise<{ transaction: Transaction, Record>; data: { returnData: tradeTransactionResponse; jsonReceived: Time; json: string; }; }>; transactionStatus: Promise; }; get openPositions(): OpenPosition[] | null; get limitPositions(): LimitPosition[] | null; get positions(): TradeRecord[] | null; get positionsUpdated(): Time | null; tradeTransaction(tradeTransInfo: TRADE_TRANS_INFO | TRADE_TRANS_INFO_MODIFY | TRADE_TRANS_INFO_CLOSE | TRADE_TRANS_INFO_DELETE): { transaction: Promise<{ transaction: Transaction; data: { returnData: tradeTransactionResponse; jsonReceived: Time; json: string; }; }>; transactionStatus: Promise; }; }