import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from 'ethers';
import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi';
import type { Listener, Provider } from '@ethersproject/providers';
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common';
export declare namespace IPoolsController {
    type PoolCreationParamsStruct = {
        poolHash: PromiseOrValue<BytesLike>;
        underlyingToken: PromiseOrValue<string>;
        yieldProvider: PromiseOrValue<string>;
        minRate: PromiseOrValue<BigNumberish>;
        maxRate: PromiseOrValue<BigNumberish>;
        rateSpacing: PromiseOrValue<BigNumberish>;
        maxBorrowableAmount: PromiseOrValue<BigNumberish>;
        loanDuration: PromiseOrValue<BigNumberish>;
        distributionRate: PromiseOrValue<BigNumberish>;
        cooldownPeriod: PromiseOrValue<BigNumberish>;
        repaymentPeriod: PromiseOrValue<BigNumberish>;
        lateRepayFeePerBondRate: PromiseOrValue<BigNumberish>;
        establishmentFeeRate: PromiseOrValue<BigNumberish>;
        repaymentFeeRate: PromiseOrValue<BigNumberish>;
        liquidityRewardsActivationThreshold: PromiseOrValue<BigNumberish>;
        earlyRepay: PromiseOrValue<boolean>;
    };
    type PoolCreationParamsStructOutput = [
        string,
        string,
        string,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        boolean
    ] & {
        poolHash: string;
        underlyingToken: string;
        yieldProvider: string;
        minRate: BigNumber;
        maxRate: BigNumber;
        rateSpacing: BigNumber;
        maxBorrowableAmount: BigNumber;
        loanDuration: BigNumber;
        distributionRate: BigNumber;
        cooldownPeriod: BigNumber;
        repaymentPeriod: BigNumber;
        lateRepayFeePerBondRate: BigNumber;
        establishmentFeeRate: BigNumber;
        repaymentFeeRate: BigNumber;
        liquidityRewardsActivationThreshold: BigNumber;
        earlyRepay: boolean;
    };
}
export interface AtlendisBorrowerPoolsInterface extends utils.Interface {
    functions: {
        'DEFAULT_ADMIN_ROLE()': FunctionFragment;
        'allow(address,bytes32)': FunctionFragment;
        'borrow(address,uint128)': FunctionFragment;
        'borrowerAuthorizedPools(address)': FunctionFragment;
        'claimProtocolFees(bytes32,uint128,address)': FunctionFragment;
        'closePool(bytes32,address)': FunctionFragment;
        'collectFees(bytes32)': FunctionFragment;
        'collectFeesForTick(bytes32,uint128)': FunctionFragment;
        'createNewPool((bytes32,address,address,uint128,uint128,uint128,uint128,uint128,uint128,uint128,uint128,uint128,uint128,uint128,uint128,bool))': FunctionFragment;
        'deposit(uint128,bytes32,address,address,uint128)': FunctionFragment;
        'disallow(address,bytes32)': FunctionFragment;
        'estimateLoanRate(uint128,bytes32)': FunctionFragment;
        'freezePool()': FunctionFragment;
        'getAmountRepartition(bytes32,uint128,uint128,uint128)': FunctionFragment;
        'getDefaultTimestamp(bytes32)': FunctionFragment;
        'getPoolAggregates(bytes32)': FunctionFragment;
        'getPoolFeeRates(bytes32)': FunctionFragment;
        'getPoolMaturity(bytes32)': FunctionFragment;
        'getPoolParameters(bytes32)': FunctionFragment;
        'getPoolState(bytes32)': FunctionFragment;
        'getProtocolFees(bytes32)': FunctionFragment;
        'getRepayAmounts(bytes32,bool)': FunctionFragment;
        'getRoleAdmin(bytes32)': FunctionFragment;
        'getTickAmounts(bytes32,uint128)': FunctionFragment;
        'getTickLastUpdate(string,uint128)': FunctionFragment;
        'getTickLiquidityRatio(bytes32,uint128)': FunctionFragment;
        'getWithdrawAmounts(bytes32,uint128,uint128,uint128)': FunctionFragment;
        'grantRole(bytes32,address)': FunctionFragment;
        'hasRole(bytes32,address)': FunctionFragment;
        'initialize(address)': FunctionFragment;
        'isEarlyRepay(bytes32)': FunctionFragment;
        'paused()': FunctionFragment;
        'renounceRole(bytes32,address)': FunctionFragment;
        'repay()': FunctionFragment;
        'revokeRole(bytes32,address)': FunctionFragment;
        'setDefault(bytes32)': FunctionFragment;
        'setEarlyRepay(bool,bytes32)': FunctionFragment;
        'setEstablishmentFeeRate(uint128,bytes32)': FunctionFragment;
        'setLiquidityRewardsDistributionRate(uint128,bytes32)': FunctionFragment;
        'setMaxBorrowableAmount(uint128,bytes32)': FunctionFragment;
        'setRepaymentFeeRate(uint128,bytes32)': FunctionFragment;
        'supportsInterface(bytes4)': FunctionFragment;
        'topUpLiquidityRewards(uint128)': FunctionFragment;
        'unfreezePool()': FunctionFragment;
        'updateRate(uint128,bytes32,uint128,uint128,uint128)': FunctionFragment;
        'withdraw(bytes32,uint128,uint128,uint128,address)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'DEFAULT_ADMIN_ROLE' | 'allow' | 'borrow' | 'borrowerAuthorizedPools' | 'claimProtocolFees' | 'closePool' | 'collectFees' | 'collectFeesForTick' | 'createNewPool' | 'deposit' | 'disallow' | 'estimateLoanRate' | 'freezePool' | 'getAmountRepartition' | 'getDefaultTimestamp' | 'getPoolAggregates' | 'getPoolFeeRates' | 'getPoolMaturity' | 'getPoolParameters' | 'getPoolState' | 'getProtocolFees' | 'getRepayAmounts' | 'getRoleAdmin' | 'getTickAmounts' | 'getTickLastUpdate' | 'getTickLiquidityRatio' | 'getWithdrawAmounts' | 'grantRole' | 'hasRole' | 'initialize' | 'isEarlyRepay' | 'paused' | 'renounceRole' | 'repay' | 'revokeRole' | 'setDefault' | 'setEarlyRepay' | 'setEstablishmentFeeRate' | 'setLiquidityRewardsDistributionRate' | 'setMaxBorrowableAmount' | 'setRepaymentFeeRate' | 'supportsInterface' | 'topUpLiquidityRewards' | 'unfreezePool' | 'updateRate' | 'withdraw'): FunctionFragment;
    encodeFunctionData(functionFragment: 'DEFAULT_ADMIN_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'allow', values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'borrow', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'borrowerAuthorizedPools', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claimProtocolFees', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'closePool', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'collectFees', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'collectFeesForTick', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'createNewPool', values: [IPoolsController.PoolCreationParamsStruct]): string;
    encodeFunctionData(functionFragment: 'deposit', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'disallow', values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'estimateLoanRate', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'freezePool', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getAmountRepartition', values: [
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'getDefaultTimestamp', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'getPoolAggregates', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'getPoolFeeRates', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'getPoolMaturity', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'getPoolParameters', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'getPoolState', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'getProtocolFees', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'getRepayAmounts', values: [PromiseOrValue<BytesLike>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'getRoleAdmin', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'getTickAmounts', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getTickLastUpdate', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getTickLiquidityRatio', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getWithdrawAmounts', values: [
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'grantRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'hasRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'initialize', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isEarlyRepay', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'paused', values?: undefined): string;
    encodeFunctionData(functionFragment: 'renounceRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'repay', values?: undefined): string;
    encodeFunctionData(functionFragment: 'revokeRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setDefault', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'setEarlyRepay', values: [PromiseOrValue<boolean>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'setEstablishmentFeeRate', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'setLiquidityRewardsDistributionRate', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'setMaxBorrowableAmount', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'setRepaymentFeeRate', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'supportsInterface', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'topUpLiquidityRewards', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'unfreezePool', values?: undefined): string;
    encodeFunctionData(functionFragment: 'updateRate', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'withdraw', values: [
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>
    ]): string;
    decodeFunctionResult(functionFragment: 'DEFAULT_ADMIN_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allow', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'borrow', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'borrowerAuthorizedPools', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimProtocolFees', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'closePool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'collectFees', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'collectFeesForTick', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'createNewPool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'disallow', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'estimateLoanRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'freezePool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getAmountRepartition', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getDefaultTimestamp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPoolAggregates', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPoolFeeRates', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPoolMaturity', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPoolParameters', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPoolState', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getProtocolFees', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRepayAmounts', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRoleAdmin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTickAmounts', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTickLastUpdate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTickLiquidityRatio', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getWithdrawAmounts', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'grantRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hasRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isEarlyRepay', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'repay', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'revokeRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setDefault', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setEarlyRepay', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setEstablishmentFeeRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setLiquidityRewardsDistributionRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setMaxBorrowableAmount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setRepaymentFeeRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'supportsInterface', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'topUpLiquidityRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unfreezePool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    events: {
        'Borrow(bytes32,uint128,uint128)': EventFragment;
        'BorrowerAllowed(address,bytes32)': EventFragment;
        'BorrowerDisallowed(address,bytes32)': EventFragment;
        'ClaimProtocolFees(bytes32,uint128,address)': EventFragment;
        'CollectFeesForTick(bytes32,uint128,uint128,uint128)': EventFragment;
        'Default(bytes32,uint128)': EventFragment;
        'EarlyRepay(bytes32,uint128,uint128,uint128,uint128)': EventFragment;
        'FurtherBorrow(bytes32,uint128,uint128)': EventFragment;
        'LateRepay(bytes32,uint128,uint128,uint128,uint128,uint128)': EventFragment;
        'Paused(address)': EventFragment;
        'PoolActivated(bytes32)': EventFragment;
        'PoolClosed(bytes32,uint128)': EventFragment;
        'PoolCreated(tuple)': EventFragment;
        'Repay(bytes32,uint128,uint128,uint128,uint128)': EventFragment;
        'RoleAdminChanged(bytes32,bytes32,bytes32)': EventFragment;
        'RoleGranted(bytes32,address,address)': EventFragment;
        'RoleRevoked(bytes32,address,address)': EventFragment;
        'SetEarlyRepay(bool,bytes32)': EventFragment;
        'SetEstablishmentFeeRate(uint128,bytes32)': EventFragment;
        'SetLiquidityRewardsDistributionRate(uint128,bytes32)': EventFragment;
        'SetMaxBorrowableAmount(uint128,bytes32)': EventFragment;
        'SetRepaymentFeeRate(uint128,bytes32)': EventFragment;
        'TickBorrow(bytes32,uint128,uint128,uint128,uint128,uint128)': EventFragment;
        'TickInitialized(bytes32,uint128,uint128)': EventFragment;
        'TickLoanDeposit(bytes32,uint128,uint128)': EventFragment;
        'TickNoLoanDeposit(bytes32,uint128,uint128,uint128)': EventFragment;
        'TickPendingDeposit(bytes32,uint128,uint128,bool)': EventFragment;
        'TickRepay(bytes32,uint128,uint128,uint128)': EventFragment;
        'TickWithdrawPending(bytes32,uint128,uint128)': EventFragment;
        'TickWithdrawRemaining(bytes32,uint128,uint128,uint128,uint128)': EventFragment;
        'TopUpLiquidityRewards(bytes32,uint128)': EventFragment;
        'Unpaused(address)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'Borrow'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'BorrowerAllowed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'BorrowerDisallowed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ClaimProtocolFees'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'CollectFeesForTick'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Default'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'EarlyRepay'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FurtherBorrow'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LateRepay'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Paused'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PoolActivated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PoolClosed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PoolCreated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Repay'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleAdminChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleGranted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleRevoked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SetEarlyRepay'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SetEstablishmentFeeRate'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SetLiquidityRewardsDistributionRate'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SetMaxBorrowableAmount'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SetRepaymentFeeRate'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TickBorrow'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TickInitialized'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TickLoanDeposit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TickNoLoanDeposit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TickPendingDeposit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TickRepay'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TickWithdrawPending'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TickWithdrawRemaining'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TopUpLiquidityRewards'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Unpaused'): EventFragment;
}
export interface BorrowEventObject {
    poolHash: string;
    normalizedBorrowedAmount: BigNumber;
    establishmentFees: BigNumber;
}
export declare type BorrowEvent = TypedEvent<[string, BigNumber, BigNumber], BorrowEventObject>;
export declare type BorrowEventFilter = TypedEventFilter<BorrowEvent>;
export interface BorrowerAllowedEventObject {
    borrowerAddress: string;
    poolHash: string;
}
export declare type BorrowerAllowedEvent = TypedEvent<[string, string], BorrowerAllowedEventObject>;
export declare type BorrowerAllowedEventFilter = TypedEventFilter<BorrowerAllowedEvent>;
export interface BorrowerDisallowedEventObject {
    borrowerAddress: string;
    poolHash: string;
}
export declare type BorrowerDisallowedEvent = TypedEvent<[string, string], BorrowerDisallowedEventObject>;
export declare type BorrowerDisallowedEventFilter = TypedEventFilter<BorrowerDisallowedEvent>;
export interface ClaimProtocolFeesEventObject {
    poolHash: string;
    normalizedAmount: BigNumber;
    to: string;
}
export declare type ClaimProtocolFeesEvent = TypedEvent<[string, BigNumber, string], ClaimProtocolFeesEventObject>;
export declare type ClaimProtocolFeesEventFilter = TypedEventFilter<ClaimProtocolFeesEvent>;
export interface CollectFeesForTickEventObject {
    poolHash: string;
    rate: BigNumber;
    remainingLiquidityRewards: BigNumber;
    addedAccruedFees: BigNumber;
}
export declare type CollectFeesForTickEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber
], CollectFeesForTickEventObject>;
export declare type CollectFeesForTickEventFilter = TypedEventFilter<CollectFeesForTickEvent>;
export interface DefaultEventObject {
    poolHash: string;
    distributedLiquidityRewards: BigNumber;
}
export declare type DefaultEvent = TypedEvent<[string, BigNumber], DefaultEventObject>;
export declare type DefaultEventFilter = TypedEventFilter<DefaultEvent>;
export interface EarlyRepayEventObject {
    poolHash: string;
    normalizedRepayAmount: BigNumber;
    repaymentFee: BigNumber;
    normalizedDepositsAfterRepay: BigNumber;
    nextLoanMinStart: BigNumber;
}
export declare type EarlyRepayEvent = TypedEvent<[string, BigNumber, BigNumber, BigNumber, BigNumber], EarlyRepayEventObject>;
export declare type EarlyRepayEventFilter = TypedEventFilter<EarlyRepayEvent>;
export interface FurtherBorrowEventObject {
    poolHash: string;
    normalizedBorrowedAmount: BigNumber;
    establishmentFees: BigNumber;
}
export declare type FurtherBorrowEvent = TypedEvent<[string, BigNumber, BigNumber], FurtherBorrowEventObject>;
export declare type FurtherBorrowEventFilter = TypedEventFilter<FurtherBorrowEvent>;
export interface LateRepayEventObject {
    poolHash: string;
    normalizedRepayAmount: BigNumber;
    lateRepayFee: BigNumber;
    repaymentFee: BigNumber;
    normalizedDepositsAfterRepay: BigNumber;
    nextLoanMinStart: BigNumber;
}
export declare type LateRepayEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], LateRepayEventObject>;
export declare type LateRepayEventFilter = TypedEventFilter<LateRepayEvent>;
export interface PausedEventObject {
    account: string;
}
export declare type PausedEvent = TypedEvent<[string], PausedEventObject>;
export declare type PausedEventFilter = TypedEventFilter<PausedEvent>;
export interface PoolActivatedEventObject {
    poolHash: string;
}
export declare type PoolActivatedEvent = TypedEvent<[string], PoolActivatedEventObject>;
export declare type PoolActivatedEventFilter = TypedEventFilter<PoolActivatedEvent>;
export interface PoolClosedEventObject {
    poolHash: string;
    collectedLiquidityRewards: BigNumber;
}
export declare type PoolClosedEvent = TypedEvent<[string, BigNumber], PoolClosedEventObject>;
export declare type PoolClosedEventFilter = TypedEventFilter<PoolClosedEvent>;
export interface PoolCreatedEventObject {
    params: IPoolsController.PoolCreationParamsStructOutput;
}
export declare type PoolCreatedEvent = TypedEvent<[IPoolsController.PoolCreationParamsStructOutput], PoolCreatedEventObject>;
export declare type PoolCreatedEventFilter = TypedEventFilter<PoolCreatedEvent>;
export interface RepayEventObject {
    poolHash: string;
    normalizedRepayAmount: BigNumber;
    repaymentFee: BigNumber;
    normalizedDepositsAfterRepay: BigNumber;
    nextLoanMinStart: BigNumber;
}
export declare type RepayEvent = TypedEvent<[string, BigNumber, BigNumber, BigNumber, BigNumber], RepayEventObject>;
export declare type RepayEventFilter = TypedEventFilter<RepayEvent>;
export interface RoleAdminChangedEventObject {
    role: string;
    previousAdminRole: string;
    newAdminRole: string;
}
export declare type RoleAdminChangedEvent = TypedEvent<[string, string, string], RoleAdminChangedEventObject>;
export declare type RoleAdminChangedEventFilter = TypedEventFilter<RoleAdminChangedEvent>;
export interface RoleGrantedEventObject {
    role: string;
    account: string;
    sender: string;
}
export declare type RoleGrantedEvent = TypedEvent<[string, string, string], RoleGrantedEventObject>;
export declare type RoleGrantedEventFilter = TypedEventFilter<RoleGrantedEvent>;
export interface RoleRevokedEventObject {
    role: string;
    account: string;
    sender: string;
}
export declare type RoleRevokedEvent = TypedEvent<[string, string, string], RoleRevokedEventObject>;
export declare type RoleRevokedEventFilter = TypedEventFilter<RoleRevokedEvent>;
export interface SetEarlyRepayEventObject {
    earlyRepay: boolean;
    poolHash: string;
}
export declare type SetEarlyRepayEvent = TypedEvent<[boolean, string], SetEarlyRepayEventObject>;
export declare type SetEarlyRepayEventFilter = TypedEventFilter<SetEarlyRepayEvent>;
export interface SetEstablishmentFeeRateEventObject {
    establishmentRate: BigNumber;
    poolHash: string;
}
export declare type SetEstablishmentFeeRateEvent = TypedEvent<[BigNumber, string], SetEstablishmentFeeRateEventObject>;
export declare type SetEstablishmentFeeRateEventFilter = TypedEventFilter<SetEstablishmentFeeRateEvent>;
export interface SetLiquidityRewardsDistributionRateEventObject {
    distributionRate: BigNumber;
    poolHash: string;
}
export declare type SetLiquidityRewardsDistributionRateEvent = TypedEvent<[
    BigNumber,
    string
], SetLiquidityRewardsDistributionRateEventObject>;
export declare type SetLiquidityRewardsDistributionRateEventFilter = TypedEventFilter<SetLiquidityRewardsDistributionRateEvent>;
export interface SetMaxBorrowableAmountEventObject {
    maxTokenDeposit: BigNumber;
    poolHash: string;
}
export declare type SetMaxBorrowableAmountEvent = TypedEvent<[BigNumber, string], SetMaxBorrowableAmountEventObject>;
export declare type SetMaxBorrowableAmountEventFilter = TypedEventFilter<SetMaxBorrowableAmountEvent>;
export interface SetRepaymentFeeRateEventObject {
    repaymentFeeRate: BigNumber;
    poolHash: string;
}
export declare type SetRepaymentFeeRateEvent = TypedEvent<[BigNumber, string], SetRepaymentFeeRateEventObject>;
export declare type SetRepaymentFeeRateEventFilter = TypedEventFilter<SetRepaymentFeeRateEvent>;
export interface TickBorrowEventObject {
    poolHash: string;
    rate: BigNumber;
    adjustedRemainingAmountReduction: BigNumber;
    loanedAmount: BigNumber;
    atlendisLiquidityRatio: BigNumber;
    unborrowedRatio: BigNumber;
}
export declare type TickBorrowEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], TickBorrowEventObject>;
export declare type TickBorrowEventFilter = TypedEventFilter<TickBorrowEvent>;
export interface TickInitializedEventObject {
    poolHash: string;
    rate: BigNumber;
    atlendisLiquidityRatio: BigNumber;
}
export declare type TickInitializedEvent = TypedEvent<[string, BigNumber, BigNumber], TickInitializedEventObject>;
export declare type TickInitializedEventFilter = TypedEventFilter<TickInitializedEvent>;
export interface TickLoanDepositEventObject {
    poolHash: string;
    rate: BigNumber;
    adjustedPendingDeposit: BigNumber;
}
export declare type TickLoanDepositEvent = TypedEvent<[string, BigNumber, BigNumber], TickLoanDepositEventObject>;
export declare type TickLoanDepositEventFilter = TypedEventFilter<TickLoanDepositEvent>;
export interface TickNoLoanDepositEventObject {
    poolHash: string;
    rate: BigNumber;
    adjustedAvailableDeposit: BigNumber;
    atlendisLiquidityRatio: BigNumber;
}
export declare type TickNoLoanDepositEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber
], TickNoLoanDepositEventObject>;
export declare type TickNoLoanDepositEventFilter = TypedEventFilter<TickNoLoanDepositEvent>;
export interface TickPendingDepositEventObject {
    poolHash: string;
    rate: BigNumber;
    adjustedPendingAmount: BigNumber;
    poolBondIssuanceIndexIncremented: boolean;
}
export declare type TickPendingDepositEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    boolean
], TickPendingDepositEventObject>;
export declare type TickPendingDepositEventFilter = TypedEventFilter<TickPendingDepositEvent>;
export interface TickRepayEventObject {
    poolHash: string;
    rate: BigNumber;
    adjustedRemainingAmount: BigNumber;
    atlendisLiquidityRatio: BigNumber;
}
export declare type TickRepayEvent = TypedEvent<[string, BigNumber, BigNumber, BigNumber], TickRepayEventObject>;
export declare type TickRepayEventFilter = TypedEventFilter<TickRepayEvent>;
export interface TickWithdrawPendingEventObject {
    poolHash: string;
    rate: BigNumber;
    adjustedAmountToWithdraw: BigNumber;
}
export declare type TickWithdrawPendingEvent = TypedEvent<[string, BigNumber, BigNumber], TickWithdrawPendingEventObject>;
export declare type TickWithdrawPendingEventFilter = TypedEventFilter<TickWithdrawPendingEvent>;
export interface TickWithdrawRemainingEventObject {
    poolHash: string;
    rate: BigNumber;
    adjustedAmountToWithdraw: BigNumber;
    atlendisLiquidityRatio: BigNumber;
    accruedFeesToWithdraw: BigNumber;
}
export declare type TickWithdrawRemainingEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], TickWithdrawRemainingEventObject>;
export declare type TickWithdrawRemainingEventFilter = TypedEventFilter<TickWithdrawRemainingEvent>;
export interface TopUpLiquidityRewardsEventObject {
    poolHash: string;
    normalizedAmount: BigNumber;
}
export declare type TopUpLiquidityRewardsEvent = TypedEvent<[string, BigNumber], TopUpLiquidityRewardsEventObject>;
export declare type TopUpLiquidityRewardsEventFilter = TypedEventFilter<TopUpLiquidityRewardsEvent>;
export interface UnpausedEventObject {
    account: string;
}
export declare type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>;
export declare type UnpausedEventFilter = TypedEventFilter<UnpausedEvent>;
export interface AtlendisBorrowerPools extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: AtlendisBorrowerPoolsInterface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<[string]>;
        allow(borrowerAddress: PromiseOrValue<string>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        borrow(to: PromiseOrValue<string>, loanAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        borrowerAuthorizedPools(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string]>;
        claimProtocolFees(poolHash: PromiseOrValue<BytesLike>, amount: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        closePool(poolHash: PromiseOrValue<BytesLike>, to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        collectFees(poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        collectFeesForTick(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        createNewPool(params: IPoolsController.PoolCreationParamsStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        deposit(rate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, underlyingToken: PromiseOrValue<string>, sender: PromiseOrValue<string>, normalizedAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        disallow(borrowerAddress: PromiseOrValue<string>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        estimateLoanRate(normalizedBorrowedAmount: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber] & {
            estimatedRate: BigNumber;
        }>;
        freezePool(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getAmountRepartition(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, adjustedAmount: PromiseOrValue<BigNumberish>, bondsIssuanceIndex: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            bondsQuantity: BigNumber;
            normalizedDepositedAmount: BigNumber;
        }>;
        getDefaultTimestamp(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber] & {
            defaultTimestamp: BigNumber;
        }>;
        getPoolAggregates(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            weightedAverageLendingRate: BigNumber;
            adjustedPendingDeposits: BigNumber;
        }>;
        getPoolFeeRates(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            establishmentFeeRate: BigNumber;
            repaymentFeeRate: BigNumber;
        }>;
        getPoolMaturity(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber] & {
            poolCurrentMaturity: BigNumber;
        }>;
        getPoolParameters(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
            string,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            underlyingToken: string;
            minRate: BigNumber;
            maxRate: BigNumber;
            rateSpacing: BigNumber;
            maxBorrowableAmount: BigNumber;
            loanDuration: BigNumber;
            liquidityRewardsDistributionRate: BigNumber;
            cooldownPeriod: BigNumber;
            repaymentPeriod: BigNumber;
            lateRepayFeePerBondRate: BigNumber;
            liquidityRewardsActivationThreshold: BigNumber;
        }>;
        getPoolState(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
            boolean,
            boolean,
            boolean,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            active: boolean;
            defaulted: boolean;
            closed: boolean;
            currentMaturity: BigNumber;
            bondsIssuedQuantity: BigNumber;
            normalizedBorrowedAmount: BigNumber;
            normalizedAvailableDeposits: BigNumber;
            lowerInterestRate: BigNumber;
            nextLoanMinStart: BigNumber;
            remainingAdjustedLiquidityRewardsReserve: BigNumber;
            yieldProviderLiquidityRatio: BigNumber;
            currentBondsIssuanceIndex: BigNumber;
        }>;
        getProtocolFees(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getRepayAmounts(poolHash: PromiseOrValue<BytesLike>, earlyRepay: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            normalizedRepayAmount: BigNumber;
            lateRepayFee: BigNumber;
            repaymentFees: BigNumber;
        }>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        getTickAmounts(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            adjustedTotalAmount: BigNumber;
            adjustedRemainingAmount: BigNumber;
            bondsQuantity: BigNumber;
            adjustedPendingAmount: BigNumber;
            atlendisLiquidityRatio: BigNumber;
            accruedFees: BigNumber;
        }>;
        getTickLastUpdate(pool: PromiseOrValue<string>, rate: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            lastFeeDistributionTimestamp: BigNumber;
        }>;
        getTickLiquidityRatio(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            liquidityRatio: BigNumber;
        }>;
        getWithdrawAmounts(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, adjustedAmount: PromiseOrValue<BigNumberish>, bondsIssuanceIndex: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            adjustedAmountToWithdraw: BigNumber;
            depositedAmountToWithdraw: BigNumber;
            remainingBondsQuantity: BigNumber;
            bondsMaturity: BigNumber;
        }>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        initialize(governance: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isEarlyRepay(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean] & {
            earlyRepay: boolean;
        }>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        repay(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setDefault(poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setEarlyRepay(earlyRepay: PromiseOrValue<boolean>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setEstablishmentFeeRate(establishmentFeeRate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setLiquidityRewardsDistributionRate(distributionRate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setMaxBorrowableAmount(maxBorrowableAmount: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setRepaymentFeeRate(repaymentFeeRate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        topUpLiquidityRewards(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unfreezePool(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateRate(adjustedAmount: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, oldRate: PromiseOrValue<BigNumberish>, newRate: PromiseOrValue<BigNumberish>, oldBondsIssuanceIndex: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdraw(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, adjustedAmountToWithdraw: PromiseOrValue<BigNumberish>, bondsIssuanceIndex: PromiseOrValue<BigNumberish>, owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
    allow(borrowerAddress: PromiseOrValue<string>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    borrow(to: PromiseOrValue<string>, loanAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    borrowerAuthorizedPools(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    claimProtocolFees(poolHash: PromiseOrValue<BytesLike>, amount: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    closePool(poolHash: PromiseOrValue<BytesLike>, to: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    collectFees(poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    collectFeesForTick(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    createNewPool(params: IPoolsController.PoolCreationParamsStruct, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    deposit(rate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, underlyingToken: PromiseOrValue<string>, sender: PromiseOrValue<string>, normalizedAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    disallow(borrowerAddress: PromiseOrValue<string>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    estimateLoanRate(normalizedBorrowedAmount: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
    freezePool(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getAmountRepartition(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, adjustedAmount: PromiseOrValue<BigNumberish>, bondsIssuanceIndex: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber
    ] & {
        bondsQuantity: BigNumber;
        normalizedDepositedAmount: BigNumber;
    }>;
    getDefaultTimestamp(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
    getPoolAggregates(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber
    ] & {
        weightedAverageLendingRate: BigNumber;
        adjustedPendingDeposits: BigNumber;
    }>;
    getPoolFeeRates(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber
    ] & {
        establishmentFeeRate: BigNumber;
        repaymentFeeRate: BigNumber;
    }>;
    getPoolMaturity(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
    getPoolParameters(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
        string,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        underlyingToken: string;
        minRate: BigNumber;
        maxRate: BigNumber;
        rateSpacing: BigNumber;
        maxBorrowableAmount: BigNumber;
        loanDuration: BigNumber;
        liquidityRewardsDistributionRate: BigNumber;
        cooldownPeriod: BigNumber;
        repaymentPeriod: BigNumber;
        lateRepayFeePerBondRate: BigNumber;
        liquidityRewardsActivationThreshold: BigNumber;
    }>;
    getPoolState(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
        boolean,
        boolean,
        boolean,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        active: boolean;
        defaulted: boolean;
        closed: boolean;
        currentMaturity: BigNumber;
        bondsIssuedQuantity: BigNumber;
        normalizedBorrowedAmount: BigNumber;
        normalizedAvailableDeposits: BigNumber;
        lowerInterestRate: BigNumber;
        nextLoanMinStart: BigNumber;
        remainingAdjustedLiquidityRewardsReserve: BigNumber;
        yieldProviderLiquidityRatio: BigNumber;
        currentBondsIssuanceIndex: BigNumber;
    }>;
    getProtocolFees(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
    getRepayAmounts(poolHash: PromiseOrValue<BytesLike>, earlyRepay: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        normalizedRepayAmount: BigNumber;
        lateRepayFee: BigNumber;
        repaymentFees: BigNumber;
    }>;
    getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    getTickAmounts(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        adjustedTotalAmount: BigNumber;
        adjustedRemainingAmount: BigNumber;
        bondsQuantity: BigNumber;
        adjustedPendingAmount: BigNumber;
        atlendisLiquidityRatio: BigNumber;
        accruedFees: BigNumber;
    }>;
    getTickLastUpdate(pool: PromiseOrValue<string>, rate: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getTickLiquidityRatio(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getWithdrawAmounts(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, adjustedAmount: PromiseOrValue<BigNumberish>, bondsIssuanceIndex: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        adjustedAmountToWithdraw: BigNumber;
        depositedAmountToWithdraw: BigNumber;
        remainingBondsQuantity: BigNumber;
        bondsMaturity: BigNumber;
    }>;
    grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    initialize(governance: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isEarlyRepay(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    repay(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setDefault(poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setEarlyRepay(earlyRepay: PromiseOrValue<boolean>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setEstablishmentFeeRate(establishmentFeeRate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setLiquidityRewardsDistributionRate(distributionRate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setMaxBorrowableAmount(maxBorrowableAmount: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setRepaymentFeeRate(repaymentFeeRate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    topUpLiquidityRewards(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unfreezePool(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateRate(adjustedAmount: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, oldRate: PromiseOrValue<BigNumberish>, newRate: PromiseOrValue<BigNumberish>, oldBondsIssuanceIndex: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdraw(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, adjustedAmountToWithdraw: PromiseOrValue<BigNumberish>, bondsIssuanceIndex: PromiseOrValue<BigNumberish>, owner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
        allow(borrowerAddress: PromiseOrValue<string>, poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        borrow(to: PromiseOrValue<string>, loanAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        borrowerAuthorizedPools(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        claimProtocolFees(poolHash: PromiseOrValue<BytesLike>, amount: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        closePool(poolHash: PromiseOrValue<BytesLike>, to: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        collectFees(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        collectFeesForTick(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        createNewPool(params: IPoolsController.PoolCreationParamsStruct, overrides?: CallOverrides): Promise<void>;
        deposit(rate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, underlyingToken: PromiseOrValue<string>, sender: PromiseOrValue<string>, normalizedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            adjustedAmount: BigNumber;
            bondsIssuanceIndex: BigNumber;
        }>;
        disallow(borrowerAddress: PromiseOrValue<string>, poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        estimateLoanRate(normalizedBorrowedAmount: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        freezePool(overrides?: CallOverrides): Promise<void>;
        getAmountRepartition(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, adjustedAmount: PromiseOrValue<BigNumberish>, bondsIssuanceIndex: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            bondsQuantity: BigNumber;
            normalizedDepositedAmount: BigNumber;
        }>;
        getDefaultTimestamp(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getPoolAggregates(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            weightedAverageLendingRate: BigNumber;
            adjustedPendingDeposits: BigNumber;
        }>;
        getPoolFeeRates(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            establishmentFeeRate: BigNumber;
            repaymentFeeRate: BigNumber;
        }>;
        getPoolMaturity(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getPoolParameters(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
            string,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            underlyingToken: string;
            minRate: BigNumber;
            maxRate: BigNumber;
            rateSpacing: BigNumber;
            maxBorrowableAmount: BigNumber;
            loanDuration: BigNumber;
            liquidityRewardsDistributionRate: BigNumber;
            cooldownPeriod: BigNumber;
            repaymentPeriod: BigNumber;
            lateRepayFeePerBondRate: BigNumber;
            liquidityRewardsActivationThreshold: BigNumber;
        }>;
        getPoolState(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
            boolean,
            boolean,
            boolean,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            active: boolean;
            defaulted: boolean;
            closed: boolean;
            currentMaturity: BigNumber;
            bondsIssuedQuantity: BigNumber;
            normalizedBorrowedAmount: BigNumber;
            normalizedAvailableDeposits: BigNumber;
            lowerInterestRate: BigNumber;
            nextLoanMinStart: BigNumber;
            remainingAdjustedLiquidityRewardsReserve: BigNumber;
            yieldProviderLiquidityRatio: BigNumber;
            currentBondsIssuanceIndex: BigNumber;
        }>;
        getProtocolFees(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getRepayAmounts(poolHash: PromiseOrValue<BytesLike>, earlyRepay: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            normalizedRepayAmount: BigNumber;
            lateRepayFee: BigNumber;
            repaymentFees: BigNumber;
        }>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        getTickAmounts(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            adjustedTotalAmount: BigNumber;
            adjustedRemainingAmount: BigNumber;
            bondsQuantity: BigNumber;
            adjustedPendingAmount: BigNumber;
            atlendisLiquidityRatio: BigNumber;
            accruedFees: BigNumber;
        }>;
        getTickLastUpdate(pool: PromiseOrValue<string>, rate: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTickLiquidityRatio(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getWithdrawAmounts(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, adjustedAmount: PromiseOrValue<BigNumberish>, bondsIssuanceIndex: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            adjustedAmountToWithdraw: BigNumber;
            depositedAmountToWithdraw: BigNumber;
            remainingBondsQuantity: BigNumber;
            bondsMaturity: BigNumber;
        }>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        initialize(governance: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        isEarlyRepay(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        repay(overrides?: CallOverrides): Promise<void>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setDefault(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        setEarlyRepay(earlyRepay: PromiseOrValue<boolean>, poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        setEstablishmentFeeRate(establishmentFeeRate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        setLiquidityRewardsDistributionRate(distributionRate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        setMaxBorrowableAmount(maxBorrowableAmount: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        setRepaymentFeeRate(repaymentFeeRate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        topUpLiquidityRewards(amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        unfreezePool(overrides?: CallOverrides): Promise<void>;
        updateRate(adjustedAmount: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, oldRate: PromiseOrValue<BigNumberish>, newRate: PromiseOrValue<BigNumberish>, oldBondsIssuanceIndex: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            newAdjustedAmount: BigNumber;
            newBondsIssuanceIndex: BigNumber;
            normalizedAmount: BigNumber;
        }>;
        withdraw(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, adjustedAmountToWithdraw: PromiseOrValue<BigNumberish>, bondsIssuanceIndex: PromiseOrValue<BigNumberish>, owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    filters: {
        'Borrow(bytes32,uint128,uint128)'(poolHash?: PromiseOrValue<BytesLike> | null, normalizedBorrowedAmount?: null, establishmentFees?: null): BorrowEventFilter;
        Borrow(poolHash?: PromiseOrValue<BytesLike> | null, normalizedBorrowedAmount?: null, establishmentFees?: null): BorrowEventFilter;
        'BorrowerAllowed(address,bytes32)'(borrowerAddress?: null, poolHash?: null): BorrowerAllowedEventFilter;
        BorrowerAllowed(borrowerAddress?: null, poolHash?: null): BorrowerAllowedEventFilter;
        'BorrowerDisallowed(address,bytes32)'(borrowerAddress?: null, poolHash?: null): BorrowerDisallowedEventFilter;
        BorrowerDisallowed(borrowerAddress?: null, poolHash?: null): BorrowerDisallowedEventFilter;
        'ClaimProtocolFees(bytes32,uint128,address)'(poolHash?: null, normalizedAmount?: null, to?: null): ClaimProtocolFeesEventFilter;
        ClaimProtocolFees(poolHash?: null, normalizedAmount?: null, to?: null): ClaimProtocolFeesEventFilter;
        'CollectFeesForTick(bytes32,uint128,uint128,uint128)'(poolHash?: null, rate?: null, remainingLiquidityRewards?: null, addedAccruedFees?: null): CollectFeesForTickEventFilter;
        CollectFeesForTick(poolHash?: null, rate?: null, remainingLiquidityRewards?: null, addedAccruedFees?: null): CollectFeesForTickEventFilter;
        'Default(bytes32,uint128)'(poolHash?: null, distributedLiquidityRewards?: null): DefaultEventFilter;
        Default(poolHash?: null, distributedLiquidityRewards?: null): DefaultEventFilter;
        'EarlyRepay(bytes32,uint128,uint128,uint128,uint128)'(poolHash?: PromiseOrValue<BytesLike> | null, normalizedRepayAmount?: null, repaymentFee?: null, normalizedDepositsAfterRepay?: null, nextLoanMinStart?: null): EarlyRepayEventFilter;
        EarlyRepay(poolHash?: PromiseOrValue<BytesLike> | null, normalizedRepayAmount?: null, repaymentFee?: null, normalizedDepositsAfterRepay?: null, nextLoanMinStart?: null): EarlyRepayEventFilter;
        'FurtherBorrow(bytes32,uint128,uint128)'(poolHash?: PromiseOrValue<BytesLike> | null, normalizedBorrowedAmount?: null, establishmentFees?: null): FurtherBorrowEventFilter;
        FurtherBorrow(poolHash?: PromiseOrValue<BytesLike> | null, normalizedBorrowedAmount?: null, establishmentFees?: null): FurtherBorrowEventFilter;
        'LateRepay(bytes32,uint128,uint128,uint128,uint128,uint128)'(poolHash?: PromiseOrValue<BytesLike> | null, normalizedRepayAmount?: null, lateRepayFee?: null, repaymentFee?: null, normalizedDepositsAfterRepay?: null, nextLoanMinStart?: null): LateRepayEventFilter;
        LateRepay(poolHash?: PromiseOrValue<BytesLike> | null, normalizedRepayAmount?: null, lateRepayFee?: null, repaymentFee?: null, normalizedDepositsAfterRepay?: null, nextLoanMinStart?: null): LateRepayEventFilter;
        'Paused(address)'(account?: null): PausedEventFilter;
        Paused(account?: null): PausedEventFilter;
        'PoolActivated(bytes32)'(poolHash?: null): PoolActivatedEventFilter;
        PoolActivated(poolHash?: null): PoolActivatedEventFilter;
        'PoolClosed(bytes32,uint128)'(poolHash?: null, collectedLiquidityRewards?: null): PoolClosedEventFilter;
        PoolClosed(poolHash?: null, collectedLiquidityRewards?: null): PoolClosedEventFilter;
        'PoolCreated(tuple)'(params?: null): PoolCreatedEventFilter;
        PoolCreated(params?: null): PoolCreatedEventFilter;
        'Repay(bytes32,uint128,uint128,uint128,uint128)'(poolHash?: PromiseOrValue<BytesLike> | null, normalizedRepayAmount?: null, repaymentFee?: null, normalizedDepositsAfterRepay?: null, nextLoanMinStart?: null): RepayEventFilter;
        Repay(poolHash?: PromiseOrValue<BytesLike> | null, normalizedRepayAmount?: null, repaymentFee?: null, normalizedDepositsAfterRepay?: null, nextLoanMinStart?: null): RepayEventFilter;
        'RoleAdminChanged(bytes32,bytes32,bytes32)'(role?: PromiseOrValue<BytesLike> | null, previousAdminRole?: PromiseOrValue<BytesLike> | null, newAdminRole?: PromiseOrValue<BytesLike> | null): RoleAdminChangedEventFilter;
        RoleAdminChanged(role?: PromiseOrValue<BytesLike> | null, previousAdminRole?: PromiseOrValue<BytesLike> | null, newAdminRole?: PromiseOrValue<BytesLike> | null): RoleAdminChangedEventFilter;
        'RoleGranted(bytes32,address,address)'(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleGrantedEventFilter;
        RoleGranted(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleGrantedEventFilter;
        'RoleRevoked(bytes32,address,address)'(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleRevokedEventFilter;
        RoleRevoked(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleRevokedEventFilter;
        'SetEarlyRepay(bool,bytes32)'(earlyRepay?: null, poolHash?: null): SetEarlyRepayEventFilter;
        SetEarlyRepay(earlyRepay?: null, poolHash?: null): SetEarlyRepayEventFilter;
        'SetEstablishmentFeeRate(uint128,bytes32)'(establishmentRate?: null, poolHash?: null): SetEstablishmentFeeRateEventFilter;
        SetEstablishmentFeeRate(establishmentRate?: null, poolHash?: null): SetEstablishmentFeeRateEventFilter;
        'SetLiquidityRewardsDistributionRate(uint128,bytes32)'(distributionRate?: null, poolHash?: null): SetLiquidityRewardsDistributionRateEventFilter;
        SetLiquidityRewardsDistributionRate(distributionRate?: null, poolHash?: null): SetLiquidityRewardsDistributionRateEventFilter;
        'SetMaxBorrowableAmount(uint128,bytes32)'(maxTokenDeposit?: null, poolHash?: null): SetMaxBorrowableAmountEventFilter;
        SetMaxBorrowableAmount(maxTokenDeposit?: null, poolHash?: null): SetMaxBorrowableAmountEventFilter;
        'SetRepaymentFeeRate(uint128,bytes32)'(repaymentFeeRate?: null, poolHash?: null): SetRepaymentFeeRateEventFilter;
        SetRepaymentFeeRate(repaymentFeeRate?: null, poolHash?: null): SetRepaymentFeeRateEventFilter;
        'TickBorrow(bytes32,uint128,uint128,uint128,uint128,uint128)'(poolHash?: null, rate?: null, adjustedRemainingAmountReduction?: null, loanedAmount?: null, atlendisLiquidityRatio?: null, unborrowedRatio?: null): TickBorrowEventFilter;
        TickBorrow(poolHash?: null, rate?: null, adjustedRemainingAmountReduction?: null, loanedAmount?: null, atlendisLiquidityRatio?: null, unborrowedRatio?: null): TickBorrowEventFilter;
        'TickInitialized(bytes32,uint128,uint128)'(poolHash?: null, rate?: null, atlendisLiquidityRatio?: null): TickInitializedEventFilter;
        TickInitialized(poolHash?: null, rate?: null, atlendisLiquidityRatio?: null): TickInitializedEventFilter;
        'TickLoanDeposit(bytes32,uint128,uint128)'(poolHash?: null, rate?: null, adjustedPendingDeposit?: null): TickLoanDepositEventFilter;
        TickLoanDeposit(poolHash?: null, rate?: null, adjustedPendingDeposit?: null): TickLoanDepositEventFilter;
        'TickNoLoanDeposit(bytes32,uint128,uint128,uint128)'(poolHash?: null, rate?: null, adjustedAvailableDeposit?: null, atlendisLiquidityRatio?: null): TickNoLoanDepositEventFilter;
        TickNoLoanDeposit(poolHash?: null, rate?: null, adjustedAvailableDeposit?: null, atlendisLiquidityRatio?: null): TickNoLoanDepositEventFilter;
        'TickPendingDeposit(bytes32,uint128,uint128,bool)'(poolHash?: null, rate?: null, adjustedPendingAmount?: null, poolBondIssuanceIndexIncremented?: null): TickPendingDepositEventFilter;
        TickPendingDeposit(poolHash?: null, rate?: null, adjustedPendingAmount?: null, poolBondIssuanceIndexIncremented?: null): TickPendingDepositEventFilter;
        'TickRepay(bytes32,uint128,uint128,uint128)'(poolHash?: null, rate?: null, adjustedRemainingAmount?: null, atlendisLiquidityRatio?: null): TickRepayEventFilter;
        TickRepay(poolHash?: null, rate?: null, adjustedRemainingAmount?: null, atlendisLiquidityRatio?: null): TickRepayEventFilter;
        'TickWithdrawPending(bytes32,uint128,uint128)'(poolHash?: null, rate?: null, adjustedAmountToWithdraw?: null): TickWithdrawPendingEventFilter;
        TickWithdrawPending(poolHash?: null, rate?: null, adjustedAmountToWithdraw?: null): TickWithdrawPendingEventFilter;
        'TickWithdrawRemaining(bytes32,uint128,uint128,uint128,uint128)'(poolHash?: null, rate?: null, adjustedAmountToWithdraw?: null, atlendisLiquidityRatio?: null, accruedFeesToWithdraw?: null): TickWithdrawRemainingEventFilter;
        TickWithdrawRemaining(poolHash?: null, rate?: null, adjustedAmountToWithdraw?: null, atlendisLiquidityRatio?: null, accruedFeesToWithdraw?: null): TickWithdrawRemainingEventFilter;
        'TopUpLiquidityRewards(bytes32,uint128)'(poolHash?: null, normalizedAmount?: null): TopUpLiquidityRewardsEventFilter;
        TopUpLiquidityRewards(poolHash?: null, normalizedAmount?: null): TopUpLiquidityRewardsEventFilter;
        'Unpaused(address)'(account?: null): UnpausedEventFilter;
        Unpaused(account?: null): UnpausedEventFilter;
    };
    estimateGas: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        allow(borrowerAddress: PromiseOrValue<string>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        borrow(to: PromiseOrValue<string>, loanAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        borrowerAuthorizedPools(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimProtocolFees(poolHash: PromiseOrValue<BytesLike>, amount: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        closePool(poolHash: PromiseOrValue<BytesLike>, to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        collectFees(poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        collectFeesForTick(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        createNewPool(params: IPoolsController.PoolCreationParamsStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        deposit(rate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, underlyingToken: PromiseOrValue<string>, sender: PromiseOrValue<string>, normalizedAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        disallow(borrowerAddress: PromiseOrValue<string>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        estimateLoanRate(normalizedBorrowedAmount: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        freezePool(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getAmountRepartition(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, adjustedAmount: PromiseOrValue<BigNumberish>, bondsIssuanceIndex: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getDefaultTimestamp(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getPoolAggregates(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getPoolFeeRates(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getPoolMaturity(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getPoolParameters(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getPoolState(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getProtocolFees(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getRepayAmounts(poolHash: PromiseOrValue<BytesLike>, earlyRepay: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<BigNumber>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getTickAmounts(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTickLastUpdate(pool: PromiseOrValue<string>, rate: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTickLiquidityRatio(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getWithdrawAmounts(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, adjustedAmount: PromiseOrValue<BigNumberish>, bondsIssuanceIndex: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        initialize(governance: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isEarlyRepay(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        repay(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setDefault(poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setEarlyRepay(earlyRepay: PromiseOrValue<boolean>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setEstablishmentFeeRate(establishmentFeeRate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setLiquidityRewardsDistributionRate(distributionRate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setMaxBorrowableAmount(maxBorrowableAmount: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setRepaymentFeeRate(repaymentFeeRate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        topUpLiquidityRewards(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unfreezePool(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateRate(adjustedAmount: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, oldRate: PromiseOrValue<BigNumberish>, newRate: PromiseOrValue<BigNumberish>, oldBondsIssuanceIndex: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdraw(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, adjustedAmountToWithdraw: PromiseOrValue<BigNumberish>, bondsIssuanceIndex: PromiseOrValue<BigNumberish>, owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        allow(borrowerAddress: PromiseOrValue<string>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        borrow(to: PromiseOrValue<string>, loanAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        borrowerAuthorizedPools(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claimProtocolFees(poolHash: PromiseOrValue<BytesLike>, amount: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        closePool(poolHash: PromiseOrValue<BytesLike>, to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        collectFees(poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        collectFeesForTick(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        createNewPool(params: IPoolsController.PoolCreationParamsStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        deposit(rate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, underlyingToken: PromiseOrValue<string>, sender: PromiseOrValue<string>, normalizedAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        disallow(borrowerAddress: PromiseOrValue<string>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        estimateLoanRate(normalizedBorrowedAmount: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        freezePool(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getAmountRepartition(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, adjustedAmount: PromiseOrValue<BigNumberish>, bondsIssuanceIndex: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getDefaultTimestamp(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPoolAggregates(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPoolFeeRates(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPoolMaturity(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPoolParameters(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPoolState(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getProtocolFees(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRepayAmounts(poolHash: PromiseOrValue<BytesLike>, earlyRepay: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTickAmounts(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTickLastUpdate(pool: PromiseOrValue<string>, rate: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTickLiquidityRatio(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getWithdrawAmounts(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, adjustedAmount: PromiseOrValue<BigNumberish>, bondsIssuanceIndex: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initialize(governance: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isEarlyRepay(poolHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        repay(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setDefault(poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setEarlyRepay(earlyRepay: PromiseOrValue<boolean>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setEstablishmentFeeRate(establishmentFeeRate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setLiquidityRewardsDistributionRate(distributionRate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setMaxBorrowableAmount(maxBorrowableAmount: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setRepaymentFeeRate(repaymentFeeRate: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        topUpLiquidityRewards(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unfreezePool(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateRate(adjustedAmount: PromiseOrValue<BigNumberish>, poolHash: PromiseOrValue<BytesLike>, oldRate: PromiseOrValue<BigNumberish>, newRate: PromiseOrValue<BigNumberish>, oldBondsIssuanceIndex: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdraw(poolHash: PromiseOrValue<BytesLike>, rate: PromiseOrValue<BigNumberish>, adjustedAmountToWithdraw: PromiseOrValue<BigNumberish>, bondsIssuanceIndex: PromiseOrValue<BigNumberish>, owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
