import BinanceApiConfig from "../apis/binance/BinanceApiConfig.js";
import APIConfig from "../apiwrapper/APIConfig.js";
import Asset from "../apiwrapper/assets/Asset.js";
import TradingPair from "../apiwrapper/assets/TradingPair.js";
import Transaction from "../apiwrapper/transaction/Transaction.js";
import TransactionSettings from "../apiwrapper/transaction/TransactionSettings.js";
import BotConfig from "../tradingbot/config/BotConfig.js";
import AssetDataCollectionConfig from "../tradingbot/data/asset/AssetDataCollectionConfig.js";
import AbstractStrategy from "../tradingbot/strategy/AbstractStrategy.js";
import AvgMinMaxStrategy from "../tradingbot/strategy/AvgMinMaxStrategy.js";
import PossiblePeakStrategy from "../tradingbot/strategy/PossiblePeakStrategy.js";
import Simple24hStrategy from "../tradingbot/strategy/Simple24hStrategy.js";
import TestStrategy from "../tradingbot/strategy/TestStrategy.js";
import AbstractWorker from "../tradingbot/worker/AbstractWorker.js";
import DefaultWorker from "../tradingbot/worker/DefaultWorker.js";
import StatisticWorker from "../tradingbot/worker/StatisticWorker.js";

export default class Serializables {
    static classes = new Map([
        ['BotConfig', BotConfig],
        ['APIConfig', APIConfig],
        ['BinanceApiConfig', BinanceApiConfig],
        ['Asset', Asset],
        ['TradingPair', TradingPair],
        ['TransactionSettings', TransactionSettings],
        ['Transaction', Transaction],
        ['AbstractWorker', AbstractWorker],
        ['StatisticWorker', StatisticWorker],
        ['DefaultWorker', DefaultWorker],
        ['AssetDataCollectionConfig', AssetDataCollectionConfig],
        ['AbstractStrategy', AbstractStrategy],
        ['TestStrategy', TestStrategy],
        ['Simple24hStrategy', Simple24hStrategy],
        ['PossiblePeakStrategy', PossiblePeakStrategy],
        ['AvgMinMaxStrategy', AvgMinMaxStrategy],
    ]);
}