"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AtlendisBorrowerPools__factory = void 0;
const ethers_1 = require("ethers");
const _abi = [
    {
        inputs: [],
        name: 'BP_BOND_ISSUANCE_ID_TOO_HIGH',
        type: 'error',
    },
    {
        inputs: [],
        name: 'BP_BORROW_COOLDOWN_PERIOD_NOT_OVER',
        type: 'error',
    },
    {
        inputs: [],
        name: 'BP_BORROW_MAX_BORROWABLE_AMOUNT_EXCEEDED',
        type: 'error',
    },
    {
        inputs: [],
        name: 'BP_BORROW_OUT_OF_BOUND_AMOUNT',
        type: 'error',
    },
    {
        inputs: [],
        name: 'BP_BORROW_UNSUFFICIENT_BORROWABLE_AMOUNT_WITHIN_BRACKETS',
        type: 'error',
    },
    {
        inputs: [],
        name: 'BP_EARLY_REPAY_NOT_ACTIVATED',
        type: 'error',
    },
    {
        inputs: [],
        name: 'BP_LOAN_ONGOING',
        type: 'error',
    },
    {
        inputs: [],
        name: 'BP_MULTIPLE_BORROW_AFTER_MATURITY',
        type: 'error',
    },
    {
        inputs: [],
        name: 'BP_NO_DEPOSIT_TO_WITHDRAW',
        type: 'error',
    },
    {
        inputs: [],
        name: 'BP_OUT_OF_BOUND_MAX_RATE',
        type: 'error',
    },
    {
        inputs: [],
        name: 'BP_OUT_OF_BOUND_MIN_RATE',
        type: 'error',
    },
    {
        inputs: [],
        name: 'BP_POOL_CLOSED',
        type: 'error',
    },
    {
        inputs: [],
        name: 'BP_POOL_DEFAULTED',
        type: 'error',
    },
    {
        inputs: [],
        name: 'BP_POOL_NOT_ACTIVE',
        type: 'error',
    },
    {
        inputs: [],
        name: 'BP_RATE_SPACING',
        type: 'error',
    },
    {
        inputs: [],
        name: 'BP_REPAY_NO_ACTIVE_LOAN',
        type: 'error',
    },
    {
        inputs: [],
        name: 'BP_TARGET_BOND_ISSUANCE_INDEX_EMPTY',
        type: 'error',
    },
    {
        inputs: [],
        name: 'BP_UNMATCHED_TOKEN',
        type: 'error',
    },
    {
        inputs: [],
        name: 'MATH_ADDITION_OVERFLOW',
        type: 'error',
    },
    {
        inputs: [],
        name: 'MATH_DIVISION_BY_ZERO',
        type: 'error',
    },
    {
        inputs: [],
        name: 'MATH_MULTIPLICATION_OVERFLOW',
        type: 'error',
    },
    {
        inputs: [],
        name: 'PC_BORROWER_ALREADY_AUTHORIZED',
        type: 'error',
    },
    {
        inputs: [],
        name: 'PC_DISALLOW_UNMATCHED_BORROWER',
        type: 'error',
    },
    {
        inputs: [],
        name: 'PC_ESTABLISHMENT_FEES_TOO_HIGH',
        type: 'error',
    },
    {
        inputs: [],
        name: 'PC_NOT_ENOUGH_PROTOCOL_FEES',
        type: 'error',
    },
    {
        inputs: [],
        name: 'PC_NO_ONGOING_LOAN',
        type: 'error',
    },
    {
        inputs: [],
        name: 'PC_POOL_ALREADY_CLOSED',
        type: 'error',
    },
    {
        inputs: [],
        name: 'PC_POOL_ALREADY_SET_FOR_BORROWER',
        type: 'error',
    },
    {
        inputs: [],
        name: 'PC_POOL_DEFAULTED',
        type: 'error',
    },
    {
        inputs: [],
        name: 'PC_POOL_NOT_ACTIVE',
        type: 'error',
    },
    {
        inputs: [],
        name: 'PC_POOL_TOKEN_NOT_SUPPORTED',
        type: 'error',
    },
    {
        inputs: [],
        name: 'PC_RATE_SPACING_COMPLIANCE',
        type: 'error',
    },
    {
        inputs: [],
        name: 'PC_REPAYMENT_PERIOD_ONGOING',
        type: 'error',
    },
    {
        inputs: [],
        name: 'PC_ZERO_ADDRESS',
        type: 'error',
    },
    {
        inputs: [],
        name: 'PC_ZERO_POOL',
        type: 'error',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'normalizedBorrowedAmount',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'establishmentFees',
                type: 'uint128',
            },
        ],
        name: 'Borrow',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'borrowerAddress',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'BorrowerAllowed',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'borrowerAddress',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'BorrowerDisallowed',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'normalizedAmount',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'to',
                type: 'address',
            },
        ],
        name: 'ClaimProtocolFees',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'rate',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'remainingLiquidityRewards',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'addedAccruedFees',
                type: 'uint128',
            },
        ],
        name: 'CollectFeesForTick',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'distributedLiquidityRewards',
                type: 'uint128',
            },
        ],
        name: 'Default',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'normalizedRepayAmount',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'repaymentFee',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'normalizedDepositsAfterRepay',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'nextLoanMinStart',
                type: 'uint128',
            },
        ],
        name: 'EarlyRepay',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'normalizedBorrowedAmount',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'establishmentFees',
                type: 'uint128',
            },
        ],
        name: 'FurtherBorrow',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'normalizedRepayAmount',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'lateRepayFee',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'repaymentFee',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'normalizedDepositsAfterRepay',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'nextLoanMinStart',
                type: 'uint128',
            },
        ],
        name: 'LateRepay',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'Paused',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'PoolActivated',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'collectedLiquidityRewards',
                type: 'uint128',
            },
        ],
        name: 'PoolClosed',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                components: [
                    {
                        internalType: 'bytes32',
                        name: 'poolHash',
                        type: 'bytes32',
                    },
                    {
                        internalType: 'address',
                        name: 'underlyingToken',
                        type: 'address',
                    },
                    {
                        internalType: 'contract ILendingPool',
                        name: 'yieldProvider',
                        type: 'address',
                    },
                    {
                        internalType: 'uint128',
                        name: 'minRate',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'maxRate',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'rateSpacing',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'maxBorrowableAmount',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'loanDuration',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'distributionRate',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'cooldownPeriod',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'repaymentPeriod',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'lateRepayFeePerBondRate',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'establishmentFeeRate',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'repaymentFeeRate',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'liquidityRewardsActivationThreshold',
                        type: 'uint128',
                    },
                    {
                        internalType: 'bool',
                        name: 'earlyRepay',
                        type: 'bool',
                    },
                ],
                indexed: false,
                internalType: 'struct IPoolsController.PoolCreationParams',
                name: 'params',
                type: 'tuple',
            },
        ],
        name: 'PoolCreated',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'normalizedRepayAmount',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'repaymentFee',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'normalizedDepositsAfterRepay',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'nextLoanMinStart',
                type: 'uint128',
            },
        ],
        name: 'Repay',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'role',
                type: 'bytes32',
            },
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'previousAdminRole',
                type: 'bytes32',
            },
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'newAdminRole',
                type: 'bytes32',
            },
        ],
        name: 'RoleAdminChanged',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'role',
                type: 'bytes32',
            },
            {
                indexed: true,
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: 'sender',
                type: 'address',
            },
        ],
        name: 'RoleGranted',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'bytes32',
                name: 'role',
                type: 'bytes32',
            },
            {
                indexed: true,
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: 'sender',
                type: 'address',
            },
        ],
        name: 'RoleRevoked',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'bool',
                name: 'earlyRepay',
                type: 'bool',
            },
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'SetEarlyRepay',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint128',
                name: 'establishmentRate',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'SetEstablishmentFeeRate',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint128',
                name: 'distributionRate',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'SetLiquidityRewardsDistributionRate',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint128',
                name: 'maxTokenDeposit',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'SetMaxBorrowableAmount',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint128',
                name: 'repaymentFeeRate',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'SetRepaymentFeeRate',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'rate',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'adjustedRemainingAmountReduction',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'loanedAmount',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'atlendisLiquidityRatio',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'unborrowedRatio',
                type: 'uint128',
            },
        ],
        name: 'TickBorrow',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'rate',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'atlendisLiquidityRatio',
                type: 'uint128',
            },
        ],
        name: 'TickInitialized',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'rate',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'adjustedPendingDeposit',
                type: 'uint128',
            },
        ],
        name: 'TickLoanDeposit',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'rate',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'adjustedAvailableDeposit',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'atlendisLiquidityRatio',
                type: 'uint128',
            },
        ],
        name: 'TickNoLoanDeposit',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'rate',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'adjustedPendingAmount',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'bool',
                name: 'poolBondIssuanceIndexIncremented',
                type: 'bool',
            },
        ],
        name: 'TickPendingDeposit',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'rate',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'adjustedRemainingAmount',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'atlendisLiquidityRatio',
                type: 'uint128',
            },
        ],
        name: 'TickRepay',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'rate',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'adjustedAmountToWithdraw',
                type: 'uint128',
            },
        ],
        name: 'TickWithdrawPending',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'rate',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'adjustedAmountToWithdraw',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'atlendisLiquidityRatio',
                type: 'uint128',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'accruedFeesToWithdraw',
                type: 'uint128',
            },
        ],
        name: 'TickWithdrawRemaining',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                indexed: false,
                internalType: 'uint128',
                name: 'normalizedAmount',
                type: 'uint128',
            },
        ],
        name: 'TopUpLiquidityRewards',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'Unpaused',
        type: 'event',
    },
    {
        inputs: [],
        name: 'DEFAULT_ADMIN_ROLE',
        outputs: [
            {
                internalType: 'bytes32',
                name: '',
                type: 'bytes32',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'borrowerAddress',
                type: 'address',
            },
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'allow',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'to',
                type: 'address',
            },
            {
                internalType: 'uint128',
                name: 'loanAmount',
                type: 'uint128',
            },
        ],
        name: 'borrow',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'borrowerAuthorizedPools',
        outputs: [
            {
                internalType: 'bytes32',
                name: '',
                type: 'bytes32',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                internalType: 'uint128',
                name: 'amount',
                type: 'uint128',
            },
            {
                internalType: 'address',
                name: 'to',
                type: 'address',
            },
        ],
        name: 'claimProtocolFees',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                internalType: 'address',
                name: 'to',
                type: 'address',
            },
        ],
        name: 'closePool',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'collectFees',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                internalType: 'uint128',
                name: 'rate',
                type: 'uint128',
            },
        ],
        name: 'collectFeesForTick',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: 'bytes32',
                        name: 'poolHash',
                        type: 'bytes32',
                    },
                    {
                        internalType: 'address',
                        name: 'underlyingToken',
                        type: 'address',
                    },
                    {
                        internalType: 'contract ILendingPool',
                        name: 'yieldProvider',
                        type: 'address',
                    },
                    {
                        internalType: 'uint128',
                        name: 'minRate',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'maxRate',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'rateSpacing',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'maxBorrowableAmount',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'loanDuration',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'distributionRate',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'cooldownPeriod',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'repaymentPeriod',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'lateRepayFeePerBondRate',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'establishmentFeeRate',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'repaymentFeeRate',
                        type: 'uint128',
                    },
                    {
                        internalType: 'uint128',
                        name: 'liquidityRewardsActivationThreshold',
                        type: 'uint128',
                    },
                    {
                        internalType: 'bool',
                        name: 'earlyRepay',
                        type: 'bool',
                    },
                ],
                internalType: 'struct IPoolsController.PoolCreationParams',
                name: 'params',
                type: 'tuple',
            },
        ],
        name: 'createNewPool',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint128',
                name: 'rate',
                type: 'uint128',
            },
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                internalType: 'address',
                name: 'underlyingToken',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'sender',
                type: 'address',
            },
            {
                internalType: 'uint128',
                name: 'normalizedAmount',
                type: 'uint128',
            },
        ],
        name: 'deposit',
        outputs: [
            {
                internalType: 'uint128',
                name: 'adjustedAmount',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'bondsIssuanceIndex',
                type: 'uint128',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'borrowerAddress',
                type: 'address',
            },
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'disallow',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint128',
                name: 'normalizedBorrowedAmount',
                type: 'uint128',
            },
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'estimateLoanRate',
        outputs: [
            {
                internalType: 'uint128',
                name: 'estimatedRate',
                type: 'uint128',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'freezePool',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                internalType: 'uint128',
                name: 'rate',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'adjustedAmount',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'bondsIssuanceIndex',
                type: 'uint128',
            },
        ],
        name: 'getAmountRepartition',
        outputs: [
            {
                internalType: 'uint128',
                name: 'bondsQuantity',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'normalizedDepositedAmount',
                type: 'uint128',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'getDefaultTimestamp',
        outputs: [
            {
                internalType: 'uint128',
                name: 'defaultTimestamp',
                type: 'uint128',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'getPoolAggregates',
        outputs: [
            {
                internalType: 'uint128',
                name: 'weightedAverageLendingRate',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'adjustedPendingDeposits',
                type: 'uint128',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'getPoolFeeRates',
        outputs: [
            {
                internalType: 'uint128',
                name: 'establishmentFeeRate',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'repaymentFeeRate',
                type: 'uint128',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'getPoolMaturity',
        outputs: [
            {
                internalType: 'uint128',
                name: 'poolCurrentMaturity',
                type: 'uint128',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'getPoolParameters',
        outputs: [
            {
                internalType: 'address',
                name: 'underlyingToken',
                type: 'address',
            },
            {
                internalType: 'uint128',
                name: 'minRate',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'maxRate',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'rateSpacing',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'maxBorrowableAmount',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'loanDuration',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'liquidityRewardsDistributionRate',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'cooldownPeriod',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'repaymentPeriod',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'lateRepayFeePerBondRate',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'liquidityRewardsActivationThreshold',
                type: 'uint128',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'getPoolState',
        outputs: [
            {
                internalType: 'bool',
                name: 'active',
                type: 'bool',
            },
            {
                internalType: 'bool',
                name: 'defaulted',
                type: 'bool',
            },
            {
                internalType: 'bool',
                name: 'closed',
                type: 'bool',
            },
            {
                internalType: 'uint128',
                name: 'currentMaturity',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'bondsIssuedQuantity',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'normalizedBorrowedAmount',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'normalizedAvailableDeposits',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'lowerInterestRate',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'nextLoanMinStart',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'remainingAdjustedLiquidityRewardsReserve',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'yieldProviderLiquidityRatio',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'currentBondsIssuanceIndex',
                type: 'uint128',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'getProtocolFees',
        outputs: [
            {
                internalType: 'uint128',
                name: '',
                type: 'uint128',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                internalType: 'bool',
                name: 'earlyRepay',
                type: 'bool',
            },
        ],
        name: 'getRepayAmounts',
        outputs: [
            {
                internalType: 'uint128',
                name: 'normalizedRepayAmount',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'lateRepayFee',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'repaymentFees',
                type: 'uint128',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'role',
                type: 'bytes32',
            },
        ],
        name: 'getRoleAdmin',
        outputs: [
            {
                internalType: 'bytes32',
                name: '',
                type: 'bytes32',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                internalType: 'uint128',
                name: 'rate',
                type: 'uint128',
            },
        ],
        name: 'getTickAmounts',
        outputs: [
            {
                internalType: 'uint128',
                name: 'adjustedTotalAmount',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'adjustedRemainingAmount',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'bondsQuantity',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'adjustedPendingAmount',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'atlendisLiquidityRatio',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'accruedFees',
                type: 'uint128',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'string',
                name: 'pool',
                type: 'string',
            },
            {
                internalType: 'uint128',
                name: 'rate',
                type: 'uint128',
            },
        ],
        name: 'getTickLastUpdate',
        outputs: [
            {
                internalType: 'uint128',
                name: 'lastFeeDistributionTimestamp',
                type: 'uint128',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                internalType: 'uint128',
                name: 'rate',
                type: 'uint128',
            },
        ],
        name: 'getTickLiquidityRatio',
        outputs: [
            {
                internalType: 'uint128',
                name: 'liquidityRatio',
                type: 'uint128',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                internalType: 'uint128',
                name: 'rate',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'adjustedAmount',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'bondsIssuanceIndex',
                type: 'uint128',
            },
        ],
        name: 'getWithdrawAmounts',
        outputs: [
            {
                internalType: 'uint128',
                name: 'adjustedAmountToWithdraw',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'depositedAmountToWithdraw',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'remainingBondsQuantity',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'bondsMaturity',
                type: 'uint128',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'role',
                type: 'bytes32',
            },
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'grantRole',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'role',
                type: 'bytes32',
            },
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'hasRole',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'governance',
                type: 'address',
            },
        ],
        name: 'initialize',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'isEarlyRepay',
        outputs: [
            {
                internalType: 'bool',
                name: 'earlyRepay',
                type: 'bool',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'paused',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'role',
                type: 'bytes32',
            },
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'renounceRole',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'repay',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'role',
                type: 'bytes32',
            },
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'revokeRole',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'setDefault',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bool',
                name: 'earlyRepay',
                type: 'bool',
            },
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'setEarlyRepay',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint128',
                name: 'establishmentFeeRate',
                type: 'uint128',
            },
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'setEstablishmentFeeRate',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint128',
                name: 'distributionRate',
                type: 'uint128',
            },
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'setLiquidityRewardsDistributionRate',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint128',
                name: 'maxBorrowableAmount',
                type: 'uint128',
            },
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'setMaxBorrowableAmount',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint128',
                name: 'repaymentFeeRate',
                type: 'uint128',
            },
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
        ],
        name: 'setRepaymentFeeRate',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes4',
                name: 'interfaceId',
                type: 'bytes4',
            },
        ],
        name: 'supportsInterface',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint128',
                name: 'amount',
                type: 'uint128',
            },
        ],
        name: 'topUpLiquidityRewards',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'unfreezePool',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint128',
                name: 'adjustedAmount',
                type: 'uint128',
            },
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                internalType: 'uint128',
                name: 'oldRate',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'newRate',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'oldBondsIssuanceIndex',
                type: 'uint128',
            },
        ],
        name: 'updateRate',
        outputs: [
            {
                internalType: 'uint128',
                name: 'newAdjustedAmount',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'newBondsIssuanceIndex',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'normalizedAmount',
                type: 'uint128',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bytes32',
                name: 'poolHash',
                type: 'bytes32',
            },
            {
                internalType: 'uint128',
                name: 'rate',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'adjustedAmountToWithdraw',
                type: 'uint128',
            },
            {
                internalType: 'uint128',
                name: 'bondsIssuanceIndex',
                type: 'uint128',
            },
            {
                internalType: 'address',
                name: 'owner',
                type: 'address',
            },
        ],
        name: 'withdraw',
        outputs: [
            {
                internalType: 'uint128',
                name: 'normalizedDepositedAmountToWithdraw',
                type: 'uint128',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'function',
    },
];
class AtlendisBorrowerPools__factory {
    static createInterface() {
        return new ethers_1.utils.Interface(_abi);
    }
    static connect(address, signerOrProvider) {
        return new ethers_1.Contract(address, _abi, signerOrProvider);
    }
}
exports.AtlendisBorrowerPools__factory = AtlendisBorrowerPools__factory;
AtlendisBorrowerPools__factory.abi = _abi;
//# sourceMappingURL=AtlendisBorrowerPools__factory.js.map