"use strict";
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
Object.defineProperty(exports, "__esModule", { value: true });
exports.ICreditFacade__factory = void 0;
var ethers_1 = require("ethers");
var _abi = [
    {
        inputs: [],
        name: "AccountTransferNotAllowedException",
        type: "error",
    },
    {
        inputs: [],
        name: "ActionProhibitedWithForbiddenTokensException",
        type: "error",
    },
    {
        inputs: [],
        name: "AdaptersOrCreditFacadeOnlyException",
        type: "error",
    },
    {
        inputs: [],
        name: "AllowanceFailedException",
        type: "error",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        name: "BalanceLessThanMinimumDesiredException",
        type: "error",
    },
    {
        inputs: [],
        name: "BorrowAmountOutOfLimitsException",
        type: "error",
    },
    {
        inputs: [],
        name: "BorrowedBlockLimitException",
        type: "error",
    },
    {
        inputs: [],
        name: "CantLiquidateNonExpiredException",
        type: "error",
    },
    {
        inputs: [],
        name: "CantLiquidateWithSuchHealthFactorException",
        type: "error",
    },
    {
        inputs: [],
        name: "CantTransferLiquidatableAccountException",
        type: "error",
    },
    {
        inputs: [],
        name: "CreditConfiguratorOnlyException",
        type: "error",
    },
    {
        inputs: [],
        name: "CreditFacadeOnlyException",
        type: "error",
    },
    {
        inputs: [],
        name: "ExpectedBalancesAlreadySetException",
        type: "error",
    },
    {
        inputs: [],
        name: "ForbiddenDuringClosureException",
        type: "error",
    },
    {
        inputs: [],
        name: "HasNoOpenedAccountException",
        type: "error",
    },
    {
        inputs: [],
        name: "IncorrectCallDataException",
        type: "error",
    },
    {
        inputs: [],
        name: "IncreaseAndDecreaseForbiddenInOneCallException",
        type: "error",
    },
    {
        inputs: [],
        name: "IncreaseDebtForbiddenException",
        type: "error",
    },
    {
        inputs: [],
        name: "NotAllowedInWhitelistedMode",
        type: "error",
    },
    {
        inputs: [],
        name: "NotAllowedWhenNotExpirableException",
        type: "error",
    },
    {
        inputs: [],
        name: "NotEnoughCollateralException",
        type: "error",
    },
    {
        inputs: [],
        name: "OpenAccountNotAllowedAfterExpirationException",
        type: "error",
    },
    {
        inputs: [],
        name: "ReentrancyLockException",
        type: "error",
    },
    {
        inputs: [],
        name: "TargetContractNotAllowedException",
        type: "error",
    },
    {
        inputs: [],
        name: "TokenAlreadyAddedException",
        type: "error",
    },
    {
        inputs: [],
        name: "TokenNotAllowedException",
        type: "error",
    },
    {
        inputs: [],
        name: "TooManyEnabledTokensException",
        type: "error",
    },
    {
        inputs: [],
        name: "TooManyTokensException",
        type: "error",
    },
    {
        inputs: [],
        name: "UnknownMethodException",
        type: "error",
    },
    {
        inputs: [],
        name: "ZeroAddressOrUserAlreadyHasAccountException",
        type: "error",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "onBehalfOf",
                type: "address",
            },
            {
                internalType: "address",
                name: "token",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
        ],
        name: "addCollateral",
        outputs: [],
        stateMutability: "payable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "targetContract",
                type: "address",
            },
            {
                internalType: "address",
                name: "token",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
        ],
        name: "approve",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "from",
                type: "address",
            },
            {
                internalType: "bool",
                name: "state",
                type: "bool",
            },
        ],
        name: "approveAccountTransfer",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "creditAccount",
                type: "address",
            },
        ],
        name: "calcCreditAccountHealthFactor",
        outputs: [
            {
                internalType: "uint256",
                name: "hf",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "creditAccount",
                type: "address",
            },
        ],
        name: "calcTotalValue",
        outputs: [
            {
                internalType: "uint256",
                name: "total",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "twv",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "to",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "skipTokenMask",
                type: "uint256",
            },
            {
                internalType: "bool",
                name: "convertWETH",
                type: "bool",
            },
            {
                components: [
                    {
                        internalType: "address",
                        name: "target",
                        type: "address",
                    },
                    {
                        internalType: "bytes",
                        name: "callData",
                        type: "bytes",
                    },
                ],
                internalType: "struct MultiCall[]",
                name: "calls",
                type: "tuple[]",
            },
        ],
        name: "closeCreditAccount",
        outputs: [],
        stateMutability: "payable",
        type: "function",
    },
    {
        inputs: [],
        name: "creditManager",
        outputs: [
            {
                internalType: "contract ICreditManagerV2",
                name: "",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
        ],
        name: "decreaseDebt",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [],
        name: "degenNFT",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "token",
                type: "address",
            },
        ],
        name: "enableToken",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "borrower",
                type: "address",
            },
        ],
        name: "hasOpenedCreditAccount",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
        ],
        name: "increaseDebt",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "token",
                type: "address",
            },
        ],
        name: "isTokenAllowed",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "limits",
        outputs: [
            {
                internalType: "uint128",
                name: "minBorrowedAmount",
                type: "uint128",
            },
            {
                internalType: "uint128",
                name: "maxBorrowedAmount",
                type: "uint128",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "borrower",
                type: "address",
            },
            {
                internalType: "address",
                name: "to",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "skipTokenMask",
                type: "uint256",
            },
            {
                internalType: "bool",
                name: "convertWETH",
                type: "bool",
            },
            {
                components: [
                    {
                        internalType: "address",
                        name: "target",
                        type: "address",
                    },
                    {
                        internalType: "bytes",
                        name: "callData",
                        type: "bytes",
                    },
                ],
                internalType: "struct MultiCall[]",
                name: "calls",
                type: "tuple[]",
            },
        ],
        name: "liquidateCreditAccount",
        outputs: [],
        stateMutability: "payable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "borrower",
                type: "address",
            },
            {
                internalType: "address",
                name: "to",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "skipTokenMask",
                type: "uint256",
            },
            {
                internalType: "bool",
                name: "convertWETH",
                type: "bool",
            },
            {
                components: [
                    {
                        internalType: "address",
                        name: "target",
                        type: "address",
                    },
                    {
                        internalType: "bytes",
                        name: "callData",
                        type: "bytes",
                    },
                ],
                internalType: "struct MultiCall[]",
                name: "calls",
                type: "tuple[]",
            },
        ],
        name: "liquidateExpiredCreditAccount",
        outputs: [],
        stateMutability: "payable",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "target",
                        type: "address",
                    },
                    {
                        internalType: "bytes",
                        name: "callData",
                        type: "bytes",
                    },
                ],
                internalType: "struct MultiCall[]",
                name: "calls",
                type: "tuple[]",
            },
        ],
        name: "multicall",
        outputs: [],
        stateMutability: "payable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
            {
                internalType: "address",
                name: "onBehalfOf",
                type: "address",
            },
            {
                internalType: "uint16",
                name: "leverageFactor",
                type: "uint16",
            },
            {
                internalType: "uint16",
                name: "referralCode",
                type: "uint16",
            },
        ],
        name: "openCreditAccount",
        outputs: [],
        stateMutability: "payable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "borrowedAmount",
                type: "uint256",
            },
            {
                internalType: "address",
                name: "onBehalfOf",
                type: "address",
            },
            {
                components: [
                    {
                        internalType: "address",
                        name: "target",
                        type: "address",
                    },
                    {
                        internalType: "bytes",
                        name: "callData",
                        type: "bytes",
                    },
                ],
                internalType: "struct MultiCall[]",
                name: "calls",
                type: "tuple[]",
            },
            {
                internalType: "uint16",
                name: "referralCode",
                type: "uint16",
            },
        ],
        name: "openCreditAccountMulticall",
        outputs: [],
        stateMutability: "payable",
        type: "function",
    },
    {
        inputs: [],
        name: "params",
        outputs: [
            {
                internalType: "uint128",
                name: "maxBorrowedAmountPerBlock",
                type: "uint128",
            },
            {
                internalType: "bool",
                name: "isIncreaseDebtForbidden",
                type: "bool",
            },
            {
                internalType: "uint40",
                name: "expirationDate",
                type: "uint40",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "to",
                type: "address",
            },
        ],
        name: "transferAccountOwnership",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "from",
                type: "address",
            },
            {
                internalType: "address",
                name: "to",
                type: "address",
            },
        ],
        name: "transfersAllowed",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "underlying",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "version",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
];
var ICreditFacade__factory = /** @class */ (function () {
    function ICreditFacade__factory() {
    }
    ICreditFacade__factory.createInterface = function () {
        return new ethers_1.utils.Interface(_abi);
    };
    ICreditFacade__factory.connect = function (address, signerOrProvider) {
        return new ethers_1.Contract(address, _abi, signerOrProvider);
    };
    ICreditFacade__factory.abi = _abi;
    return ICreditFacade__factory;
}());
exports.ICreditFacade__factory = ICreditFacade__factory;
//# sourceMappingURL=ICreditFacade__factory.js.map