import { AlgorithmRun, Algorithm } from '../db'; import { InputTypes } from "../db/Algorithm"; import { AbstractExchangeClient } from './AbstractExchangeClient'; import { ExchangeAnalyzer, ExchangeTrader, ExchangeWatcher } from '../modules'; export declare abstract class AbstractTradeAlgorithm { protected readonly analyzer: ExchangeAnalyzer; protected get watcher(): ExchangeWatcher; protected get trader(): ExchangeTrader; protected stopData: Map; private get logger(); get details(): Algorithm; protected constructor(analyzer: ExchangeAnalyzer); protected fixStart(inputs: InputsType, state: StateType): Promise; protected fixStop(id: number): Promise; protected fixContinue(id: number): Promise; protected fixFinish(id: number): Promise; protected fixError(id: number, error: Error): Promise; protected saveProgress(id: number, progress: StateType): Promise; protected loadProgress(id: number): Promise; abstract get name(): string; abstract get description(): string; abstract get inputs(): InputTypes; abstract main(inputs: InputsType): Promise; abstract continue(id: number): Promise; abstract stop(id: number): Promise; }