"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Rate = exports.Provider = void 0;
class Provider {
    name;
    uiName;
    kyc;
    isNative;
    availableOnLns;
    constructor(name, uiName, kyc, isNative, availableOnLns) {
        this.name = name;
        this.uiName = uiName;
        this.kyc = kyc;
        this.isNative = isNative;
        this.availableOnLns = availableOnLns;
    }
    static CHANGELLY = new Provider("changelly", "Changelly", false, true, true);
    static EXODUS = new Provider("exodus", "Exodus", false, true, true);
    static ONE_INCH = new Provider("oneinch", "1inch", false, false, true);
    static VELORA = new Provider("velora", "Velora", false, false, true);
    static MOONPAY = new Provider("moonpay", "MoonPay", true, false, true);
    static THORCHAIN = new Provider("thorswap", "THORChain", false, true, false);
    static UNISWAP = new Provider("uniswap", "Uniswap", false, false, false);
    static LIFI = new Provider("lifi", "LI.FI", false, true, false);
    static CIC = new Provider("cic", "CIC", false, true, true);
    static COINBASE = new Provider("coinbase", "Coinbase", false, true, true);
    static KILN = new Provider("kiln_pooling", "Kiln staking Pool", false, true, true);
    static STADER_LABS = new Provider("stader-eth", "Stader Labs", false, true, true);
    static LIDO = new Provider("lido", "Lido", false, true, true);
    static TRANSAK = new Provider("transak", "Transak", false, true, true);
    static NEAR_INTENTS = new Provider("nearintents", "NEAR Intents", false, true, true);
    static getNameByUiName(uiName) {
        const provider = Object.values(Provider).find(p => p.uiName === uiName);
        return provider ? provider.name : "";
    }
}
exports.Provider = Provider;
var Rate;
(function (Rate) {
    Rate["FIXED"] = "fixed";
    Rate["FLOAT"] = "float";
})(Rate || (exports.Rate = Rate = {}));
//# sourceMappingURL=Provider.js.map