"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.VendorFinancePool__factory = void 0;
const ethers_1 = require("ethers");
const _abi = [
    {
        inputs: [],
        stateMutability: 'nonpayable',
        type: 'constructor',
    },
    {
        inputs: [],
        name: 'BorrowingPaused',
        type: 'error',
    },
    {
        inputs: [],
        name: 'ColTokenNotSupported',
        type: 'error',
    },
    {
        inputs: [],
        name: 'DebtIsLess',
        type: 'error',
    },
    {
        inputs: [],
        name: 'DifferentColToken',
        type: 'error',
    },
    {
        inputs: [],
        name: 'DifferentLendToken',
        type: 'error',
    },
    {
        inputs: [],
        name: 'DifferentPoolOwner',
        type: 'error',
    },
    {
        inputs: [],
        name: 'DiscountTooLarge',
        type: 'error',
    },
    {
        inputs: [],
        name: 'FeeTooHigh',
        type: 'error',
    },
    {
        inputs: [],
        name: 'FeeTooLarge',
        type: 'error',
    },
    {
        inputs: [],
        name: 'FeedAlreadySet',
        type: 'error',
    },
    {
        inputs: [],
        name: 'IllegalImplementation',
        type: 'error',
    },
    {
        inputs: [],
        name: 'InsufficientBalance',
        type: 'error',
    },
    {
        inputs: [],
        name: 'InvalidDiscount',
        type: 'error',
    },
    {
        inputs: [],
        name: 'InvalidExpiry',
        type: 'error',
    },
    {
        inputs: [],
        name: 'InvalidParameters',
        type: 'error',
    },
    {
        inputs: [],
        name: 'InvalidTokenPair',
        type: 'error',
    },
    {
        inputs: [],
        name: 'InvalidType',
        type: 'error',
    },
    {
        inputs: [],
        name: 'LendTokenNotSupported',
        type: 'error',
    },
    {
        inputs: [],
        name: 'LicenseNotFound',
        type: 'error',
    },
    {
        inputs: [],
        name: 'MintRatio0',
        type: 'error',
    },
    {
        inputs: [],
        name: 'NoDebt',
        type: 'error',
    },
    {
        inputs: [],
        name: 'NoPermission',
        type: 'error',
    },
    {
        inputs: [],
        name: 'NotAPool',
        type: 'error',
    },
    {
        inputs: [],
        name: 'NotAuthorized',
        type: 'error',
    },
    {
        inputs: [],
        name: 'NotEnoughLiquidity',
        type: 'error',
    },
    {
        inputs: [],
        name: 'NotFactory',
        type: 'error',
    },
    {
        inputs: [],
        name: 'NotGranted',
        type: 'error',
    },
    {
        inputs: [],
        name: 'NotOwner',
        type: 'error',
    },
    {
        inputs: [],
        name: 'NotValidPrice',
        type: 'error',
    },
    {
        inputs: [],
        name: 'OperationsPaused',
        type: 'error',
    },
    {
        inputs: [],
        name: 'OracleNotSet',
        type: 'error',
    },
    {
        inputs: [],
        name: 'PoolActive',
        type: 'error',
    },
    {
        inputs: [],
        name: 'PoolClosed',
        type: 'error',
    },
    {
        inputs: [],
        name: 'PrivatePool',
        type: 'error',
    },
    {
        inputs: [],
        name: 'RoundIncomplete',
        type: 'error',
    },
    {
        inputs: [],
        name: 'StaleAnswer',
        type: 'error',
    },
    {
        inputs: [],
        name: 'TransferFailed',
        type: 'error',
    },
    {
        inputs: [],
        name: 'UpgradeNotAllowed',
        type: 'error',
    },
    {
        inputs: [],
        name: 'ZeroAddress',
        type: 'error',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'newBorrower',
                type: 'address',
            },
        ],
        name: 'AddBorrower',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'previousAdmin',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'newAdmin',
                type: 'address',
            },
        ],
        name: 'AdminChanged',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'token',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'bool',
                name: 'incoming',
                type: 'bool',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
        ],
        name: 'BalanceChange',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'beacon',
                type: 'address',
            },
        ],
        name: 'BeaconUpgraded',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'borrower',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'colDepositAmount',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'borrowAmount',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint48',
                name: 'currentFeeRate',
                type: 'uint48',
            },
        ],
        name: 'Borrow',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'treasuryLend',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'treasuryCol',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'lenderLend',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'lenderCol',
                type: 'uint256',
            },
        ],
        name: 'Collect',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint8',
                name: 'version',
                type: 'uint8',
            },
        ],
        name: 'Initialized',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'disabled',
                type: 'uint256',
            },
        ],
        name: 'Pause',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'borrower',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'colReturned',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'repayAmount',
                type: 'uint256',
            },
        ],
        name: 'Repay',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'pool',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'colRolled',
                type: 'uint256',
            },
        ],
        name: 'RollOver',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint48',
                name: 'newExpiry',
                type: 'uint48',
            },
        ],
        name: 'UpdateExpiry',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'implementation',
                type: 'address',
            },
        ],
        name: 'Upgraded',
        type: 'event',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_newBorrower',
                type: 'address',
            },
        ],
        name: 'addBorrower',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_borrower',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: '_colDepositAmount',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: '_rate',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: '_estimate',
                type: 'uint256',
            },
        ],
        name: 'borrowOnBehalfOf',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'borrowers',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'colToken',
        outputs: [
            {
                internalType: 'contract IERC20MetadataUpgradeable',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'collect',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'debt',
        outputs: [
            {
                internalType: 'uint256',
                name: 'borrowAmount',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'colAmount',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'totalFees',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: '_depositAmount',
                type: 'uint256',
            },
        ],
        name: 'deposit',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'disabledBorrow',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'expiry',
        outputs: [
            {
                internalType: 'uint48',
                name: '',
                type: 'uint48',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'extendExpiry',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'factory',
        outputs: [
            {
                internalType: 'contract IPoolFactory',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'feeManager',
        outputs: [
            {
                internalType: 'contract IFeesManager',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: 'address',
                        name: 'deployer',
                        type: 'address',
                    },
                    {
                        internalType: 'uint256',
                        name: 'mintRatio',
                        type: 'uint256',
                    },
                    {
                        internalType: 'address',
                        name: 'colToken',
                        type: 'address',
                    },
                    {
                        internalType: 'address',
                        name: 'lendToken',
                        type: 'address',
                    },
                    {
                        internalType: 'uint48',
                        name: 'expiry',
                        type: 'uint48',
                    },
                    {
                        internalType: 'address[]',
                        name: 'borrowers',
                        type: 'address[]',
                    },
                    {
                        internalType: 'uint48',
                        name: 'protocolFee',
                        type: 'uint48',
                    },
                    {
                        internalType: 'uint48',
                        name: 'protocolColFee',
                        type: 'uint48',
                    },
                    {
                        internalType: 'address',
                        name: 'feesManager',
                        type: 'address',
                    },
                    {
                        internalType: 'address',
                        name: 'oracle',
                        type: 'address',
                    },
                    {
                        internalType: 'address',
                        name: 'factory',
                        type: 'address',
                    },
                    {
                        internalType: 'uint256',
                        name: 'undercollateralized',
                        type: 'uint256',
                    },
                ],
                internalType: 'struct IStructs.Data',
                name: 'data',
                type: 'tuple',
            },
        ],
        name: 'initialize',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'isPrivate',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'lendToken',
        outputs: [
            {
                internalType: 'contract IERC20MetadataUpgradeable',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'mintRatio',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'owner',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'priceFeed',
        outputs: [
            {
                internalType: 'contract IVendorOracle',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'protocolColFee',
        outputs: [
            {
                internalType: 'uint48',
                name: '',
                type: 'uint48',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'protocolFee',
        outputs: [
            {
                internalType: 'uint48',
                name: '',
                type: 'uint48',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'proxiableUUID',
        outputs: [
            {
                internalType: 'bytes32',
                name: '',
                type: 'bytes32',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_borrower',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: '_repayAmount',
                type: 'uint256',
            },
        ],
        name: 'repayOnBehalfOf',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_newPool',
                type: 'address',
            },
        ],
        name: 'rollOver',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: '_disabled',
                type: 'uint256',
            },
        ],
        name: 'setBorrow',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'totalFees',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_owner',
                type: 'address',
            },
        ],
        name: 'transferOwnership',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'treasury',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'undercollateralized',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'newImplementation',
                type: 'address',
            },
        ],
        name: 'upgradeTo',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'newImplementation',
                type: 'address',
            },
            {
                internalType: 'bytes',
                name: 'data',
                type: 'bytes',
            },
        ],
        name: 'upgradeToAndCall',
        outputs: [],
        stateMutability: 'payable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'version',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'pure',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: '_amount',
                type: 'uint256',
            },
        ],
        name: 'withdraw',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
];
class VendorFinancePool__factory {
    static createInterface() {
        return new ethers_1.utils.Interface(_abi);
    }
    static connect(address, signerOrProvider) {
        return new ethers_1.Contract(address, _abi, signerOrProvider);
    }
}
exports.VendorFinancePool__factory = VendorFinancePool__factory;
VendorFinancePool__factory.abi = _abi;
//# sourceMappingURL=VendorFinancePool__factory.js.map