import { GetOrdersOptions, OperationType } from "../../../types"; import { CommonDomain } from "../../../domain"; import { GetSecurityType, GetCurrencyType, GetCurrencyBalanceType, GetOrderType, GetPortfolioPositionType } from "../../../domain/extractors"; import { AbstractTradeAlgorithm, AbstractExchangeClient } from '../../../abstract'; import { ExchangeTrader, ExchangeWatcher } from '../../index'; import { TradeAlgorithmsEngine } from './trade-algorithms-engine'; import { TradeBot } from '../../../TradeBot'; import { Algorithm, AlgorithmRun } from '../../../db'; export declare class ExchangeAnalyzer { readonly tradebot: TradeBot; get trader(): ExchangeTrader; get watcher(): ExchangeWatcher; readonly tradeAlgos: TradeAlgorithmsEngine; constructor(tradebot: TradeBot, initAlgorithmsCallback?: (analyzer: ExchangeAnalyzer) => AbstractTradeAlgorithm[]); start(): Promise<[Algorithm[], void]>; private initUpdaters; private loadSecurityIfNotExist; private loadSecuritiesIfNotExist; updateCurrencies(): Promise[]>; getCurrencies(): Promise[]>; updateCurrenciesBalance(): Promise[]>; getCurrenciesBalance(): Promise[]>; updateSecurities(): Promise[]>; getSecurities(): Promise[]>; getSecurity(ticker: string): Promise>; addSecurities(...securities: GetSecurityType[]): Promise[]>; getFollowedSecurities(): Promise[]>; followSecurity(securityTicker: string): Promise | undefined>; unfollowSecurity(securityTicker: string): Promise | undefined>; updateFollowedSecurities(): Promise[]>; updatePortfolio(): Promise[]>; getPortfolio(): Promise[]>; clearPortfolio(): Promise; saveOrder(order: GetOrderType, operation: OperationType, runId?: number | undefined): Promise>; getOrders({ from, to, operation, securityTicker, runId }: GetOrdersOptions): Promise[]>; saveAlgorithms(): Promise; runAlgorithm(algorithmName: string, inputs: any, state?: any): Promise; saveAlgorithmRunProgress(id: number, state: any): Promise; loadAlgorithmRunProgress(id: number): Promise; stopAlgorithmRun(id: number): Promise; resumeAlgorithmRun(id: number): Promise; finishAlgorithmRun(id: number): Promise; errorAlgorithmRun(id: number, error: Error): Promise; getAlgorithmRunsByAlgorithm(algorithmName: string): Promise; getUnfinishedAlgorithmRuns(): Promise; }