import MetatraderAccountClient, { AccountsFilter, NewMetatraderAccountDto, MetatraderAccountIdDto } from "../clients/metaApi/metatraderAccount.client"; import MetaApiWebsocketClient from "../clients/metaApi/metaApiWebsocket.client"; import ConnectionRegistry from "./connectionRegistry"; import ExpertAdvisorClient from "../clients/metaApi/expertAdvisor.client"; import HistoricalMarketDataClient from "../clients/metaApi/historicalMarketData.client"; import MetatraderAccount from "./metatraderAccount"; import MetatraderAccountReplica from './metatraderAccountReplica'; /** * Exposes MetaTrader account API logic to the consumers */ export default class MetatraderAccountApi { /** * Constructs a MetaTrader account API instance * @param {MetatraderAccountClient} metatraderAccountClient MetaTrader account REST API client * @param {MetaApiWebsocketClient} metaApiWebsocketClient MetaApi websocket client * @param {ConnectionRegistry} connectionRegistry metatrader account connection registry * @param {ExpertAdvisorClient} expertAdvisorClient expert advisor REST API client * @param {HistoricalMarketDataClient} historicalMarketDataClient historical market data HTTP API client * @param {string} application application name */ constructor(metatraderAccountClient: MetatraderAccountClient, metaApiWebsocketClient: MetaApiWebsocketClient, connectionRegistry: ConnectionRegistry, expertAdvisorClient: ExpertAdvisorClient, historicalMarketDataClient: HistoricalMarketDataClient, application: string); /** * Returns trading accounts belonging to the current user * @param {AccountsFilter} accountsFilter optional filter * @return {Promise>} promise resolving with an array of MetaTrader account entities */ getAccounts(accountsFilter: AccountsFilter): Promise>; /** * Returns trading account by id * @param {string} accountId MetaTrader account id * @return {Promise} promise resolving with MetaTrader account entity */ getAccount(accountId: string): Promise; /** * Returns trading account replica by trading account id and replica id * @param {string} accountId MetaTrader primary account id * @param {string} replicaId MetaTrader account replica id * @return {Promise} promise resolving with MetaTrader account replica found */ getAccountReplica(accountId: string, replicaId: string): Promise; /** * Returns replicas for a trading account * @param {string} accountId Primary account id * @return {Promise>} promise resolving with MetaTrader account replicas found */ getAccountReplicas(accountId: string): Promise>; /** * Returns trading account by access token * @return {Promise} promise resolving with MetaTrader account entity */ getAccountByToken(): Promise; /** * Adds a trading account and starts a cloud API server for the trading account * @param {NewMetatraderAccountDto} account MetaTrader account data * @return {Promise} promise resolving with an id and state of the MetaTrader account created */ createAccount(account: NewMetatraderAccountDto): Promise; }