import { BaseDataClient } from "./BaseDataClient"; import { Observer } from "../Observer"; import { NewCryptoOrder } from "../messages/execution/NewCryptoOrder"; import { CancelCryptoOrder } from "../messages/execution/CancelCryptoOrder"; import { CryptoExecutionHistoryRequest } from "../messages/requestAndResult/CryptoExecutionHistoryRequest"; import { CryptoOrderStatusRequest } from "../messages/requestAndResult/CryptoOrderStatusRequest"; import { CryptoPositionOpenUpdate } from "../messages/execution/CryptoPositionOpenUpdate"; import { CryptoAlert } from "../messages/execution/CryptoAlert"; import { CryptoCanceled } from "../messages/execution/CryptoCanceled"; import { CryptoCancelling } from "../messages/execution/CryptoCancelling"; import { CryptoCancelReject } from "../messages/execution/CryptoCancelReject"; import { CryptoOrderError } from "../messages/execution/CryptoOrderError"; import { CryptoPending } from "../messages/execution/CryptoPending"; import { CryptoPosition } from "../messages/execution/CryptoPosition"; import { CryptoReject } from "../messages/execution/CryptoReject"; import { CryptoSending } from "../messages/execution/CryptoSending"; import { CryptoTrade } from "../messages/execution/CryptoTrade"; import { AccountCryptoOpenUpdate } from "../messages/manager/AccountCryptoOpenUpdate"; import { CryptoExecutionHistoryResponse } from "../messages/requestAndResult/CryptoExecutionHistoryResponse"; import { CryptoOrderStatusResponse } from "../messages/requestAndResult/CryptoOrderStatusResponse"; /** * Client for Crypto execution data. */ export interface CryptoExecutionDataClient extends BaseDataClient { /** * Triggers when position's open values are changed. * @returns {Observer} * @constructor */ readonly OnPositionOpenUpdate: Observer; /** * Triggers when position was updated. * @returns {Observer} * @constructor */ readonly OnPositionUpdate: Observer; /** * Triggers when the order on the stock exchange waiting for execution. * @returns {Observer} * @constructor */ readonly OnPending: Observer; /** * Triggers when order was successfully accepted on server side. * @returns {Observer} * @constructor */ readonly OnSending: Observer; /** * Triggers when order was executed fully or partially. * @returns {Observer} * @constructor */ readonly OnTrade: Observer; /** * Triggers when cancel order was successfully accepted on server side. * @returns {Observer} * @constructor */ readonly OnCancelling: Observer; /** * Triggers when cancel order was successfully executed. * @returns {Observer} * @constructor */ readonly OnCanceled: Observer; /** * Triggers when order has some incorrect fields or there is some other reason causing order's fail execution. * @returns {Observer} * @constructor */ readonly OnReject: Observer; /** * Triggers when there is some reason causing cancel order's fail execution. * @returns {Observer} * @constructor */ readonly OnCancelReject: Observer; /** * Triggers when order was not accepted on server side. * @returns {Observer} * @constructor */ readonly OnOrderError: Observer; /** * Triggers when some special execution operation. * @returns {Observer} * @constructor */ readonly OnAlert: Observer; /** * Triggers when response on ExecutionHistoryRequest was received. * @returns {Observer} * @constructor */ readonly OnExecutionHistoryResponse: Observer; /** * Triggers when response on OrderStatusRequest was received. * @returns {Observer} * @constructor */ readonly OnOrderStatusResponse: Observer; /** * Triggers when account's Open P/L was updated. * @returns {Observer} * @constructor */ readonly OnAccountCryptoOpenUpdate: Observer; /** * Place order for current user. * @param {NewCryptoOrder} newOrder - Order for placing. * @constructor */ PlaceOrder (newOrder: NewCryptoOrder): void; /** * Place cancel order for current user. * @param {CancelCryptoOrder} cancelOrder - Cancel order for placing. * @constructor */ CancelOrder (cancelOrder: CancelCryptoOrder): void; /** * Send request for execution history. * @param {CryptoExecutionHistoryRequest} request - Request for execution history. * @constructor */ SendExecutionHistoryRequest (request: CryptoExecutionHistoryRequest): void; /** * Send request to get information about order status. * @param {OrderStatusRequest} request - Request to get information about order status. * @constructor */ SendOrderStatusRequest (request: CryptoOrderStatusRequest): void; }