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 interface MaplePoolManagerInterface extends utils.Interface {
    functions: {
        'HUNDRED_PERCENT()': FunctionFragment;
        'acceptNewTerms(address,address,uint256,bytes[],uint256)': FunctionFragment;
        'acceptPendingPoolDelegate()': FunctionFragment;
        'active()': FunctionFragment;
        'addLoanManager(address)': FunctionFragment;
        'asset()': FunctionFragment;
        'canCall(bytes32,address,bytes)': FunctionFragment;
        'configure(address,address,uint256,uint256)': FunctionFragment;
        'configured()': FunctionFragment;
        'convertToExitShares(uint256)': FunctionFragment;
        'delegateManagementFeeRate()': FunctionFragment;
        'depositCover(uint256)': FunctionFragment;
        'factory()': FunctionFragment;
        'finishCollateralLiquidation(address)': FunctionFragment;
        'fund(uint256,address,address)': FunctionFragment;
        'getEscrowParams(address,uint256)': FunctionFragment;
        'globals()': FunctionFragment;
        'governor()': FunctionFragment;
        'hasSufficientCover()': FunctionFragment;
        'impairLoan(address)': FunctionFragment;
        'implementation()': FunctionFragment;
        'isLoanManager(address)': FunctionFragment;
        'isValidLender(address)': FunctionFragment;
        'liquidityCap()': FunctionFragment;
        'loanManagerList(uint256)': FunctionFragment;
        'maxDeposit(address)': FunctionFragment;
        'maxMint(address)': FunctionFragment;
        'maxRedeem(address)': FunctionFragment;
        'maxWithdraw(address)': FunctionFragment;
        'migrate(address,bytes)': FunctionFragment;
        'openToPublic()': FunctionFragment;
        'pendingPoolDelegate()': FunctionFragment;
        'pool()': FunctionFragment;
        'poolDelegate()': FunctionFragment;
        'poolDelegateCover()': FunctionFragment;
        'previewRedeem(address,uint256)': FunctionFragment;
        'previewWithdraw(address,uint256)': FunctionFragment;
        'processRedeem(uint256,address,address)': FunctionFragment;
        'processWithdraw(uint256,address,address)': FunctionFragment;
        'removeLoanImpairment(address)': FunctionFragment;
        'removeLoanManager(address)': FunctionFragment;
        'removeShares(uint256,address)': FunctionFragment;
        'requestRedeem(uint256,address,address)': FunctionFragment;
        'requestWithdraw(uint256,uint256,address,address)': FunctionFragment;
        'setActive(bool)': FunctionFragment;
        'setAllowedLender(address,bool)': FunctionFragment;
        'setAllowedSlippage(address,address,uint256)': FunctionFragment;
        'setDelegateManagementFeeRate(uint256)': FunctionFragment;
        'setImplementation(address)': FunctionFragment;
        'setLiquidityCap(uint256)': FunctionFragment;
        'setMinRatio(address,address,uint256)': FunctionFragment;
        'setOpenToPublic()': FunctionFragment;
        'setPendingPoolDelegate(address)': FunctionFragment;
        'setWithdrawalManager(address)': FunctionFragment;
        'totalAssets()': FunctionFragment;
        'triggerDefault(address,address)': FunctionFragment;
        'unrealizedLosses()': FunctionFragment;
        'upgrade(uint256,bytes)': FunctionFragment;
        'withdrawCover(uint256,address)': FunctionFragment;
        'withdrawalManager()': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'HUNDRED_PERCENT' | 'acceptNewTerms' | 'acceptPendingPoolDelegate' | 'active' | 'addLoanManager' | 'asset' | 'canCall' | 'configure' | 'configured' | 'convertToExitShares' | 'delegateManagementFeeRate' | 'depositCover' | 'factory' | 'finishCollateralLiquidation' | 'fund' | 'getEscrowParams' | 'globals' | 'governor' | 'hasSufficientCover' | 'impairLoan' | 'implementation' | 'isLoanManager' | 'isValidLender' | 'liquidityCap' | 'loanManagerList' | 'maxDeposit' | 'maxMint' | 'maxRedeem' | 'maxWithdraw' | 'migrate' | 'openToPublic' | 'pendingPoolDelegate' | 'pool' | 'poolDelegate' | 'poolDelegateCover' | 'previewRedeem' | 'previewWithdraw' | 'processRedeem' | 'processWithdraw' | 'removeLoanImpairment' | 'removeLoanManager' | 'removeShares' | 'requestRedeem' | 'requestWithdraw' | 'setActive' | 'setAllowedLender' | 'setAllowedSlippage' | 'setDelegateManagementFeeRate' | 'setImplementation' | 'setLiquidityCap' | 'setMinRatio' | 'setOpenToPublic' | 'setPendingPoolDelegate' | 'setWithdrawalManager' | 'totalAssets' | 'triggerDefault' | 'unrealizedLosses' | 'upgrade' | 'withdrawCover' | 'withdrawalManager'): FunctionFragment;
    encodeFunctionData(functionFragment: 'HUNDRED_PERCENT', values?: undefined): string;
    encodeFunctionData(functionFragment: 'acceptNewTerms', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'acceptPendingPoolDelegate', values?: undefined): string;
    encodeFunctionData(functionFragment: 'active', values?: undefined): string;
    encodeFunctionData(functionFragment: 'addLoanManager', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'asset', values?: undefined): string;
    encodeFunctionData(functionFragment: 'canCall', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'configure', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'configured', values?: undefined): string;
    encodeFunctionData(functionFragment: 'convertToExitShares', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'delegateManagementFeeRate', values?: undefined): string;
    encodeFunctionData(functionFragment: 'depositCover', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'factory', values?: undefined): string;
    encodeFunctionData(functionFragment: 'finishCollateralLiquidation', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'fund', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getEscrowParams', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'globals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'governor', values?: undefined): string;
    encodeFunctionData(functionFragment: 'hasSufficientCover', values?: undefined): string;
    encodeFunctionData(functionFragment: 'impairLoan', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'implementation', values?: undefined): string;
    encodeFunctionData(functionFragment: 'isLoanManager', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isValidLender', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'liquidityCap', values?: undefined): string;
    encodeFunctionData(functionFragment: 'loanManagerList', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'maxDeposit', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'maxMint', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'maxRedeem', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'maxWithdraw', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'migrate', values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'openToPublic', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pendingPoolDelegate', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pool', values?: undefined): string;
    encodeFunctionData(functionFragment: 'poolDelegate', values?: undefined): string;
    encodeFunctionData(functionFragment: 'poolDelegateCover', values?: undefined): string;
    encodeFunctionData(functionFragment: 'previewRedeem', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'previewWithdraw', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'processRedeem', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'processWithdraw', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'removeLoanImpairment', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'removeLoanManager', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'removeShares', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'requestRedeem', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'requestWithdraw', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: 'setActive', values: [PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setAllowedLender', values: [PromiseOrValue<string>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setAllowedSlippage', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setDelegateManagementFeeRate', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setImplementation', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setLiquidityCap', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setMinRatio', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setOpenToPublic', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setPendingPoolDelegate', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setWithdrawalManager', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'totalAssets', values?: undefined): string;
    encodeFunctionData(functionFragment: 'triggerDefault', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'unrealizedLosses', values?: undefined): string;
    encodeFunctionData(functionFragment: 'upgrade', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'withdrawCover', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'withdrawalManager', values?: undefined): string;
    decodeFunctionResult(functionFragment: 'HUNDRED_PERCENT', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'acceptNewTerms', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'acceptPendingPoolDelegate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'active', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addLoanManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'asset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'canCall', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'configure', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'configured', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'convertToExitShares', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'delegateManagementFeeRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositCover', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'factory', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'finishCollateralLiquidation', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'fund', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getEscrowParams', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'globals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'governor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hasSufficientCover', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'impairLoan', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'implementation', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isLoanManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isValidLender', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'liquidityCap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'loanManagerList', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxDeposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxMint', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxRedeem', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxWithdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'migrate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'openToPublic', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pendingPoolDelegate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'poolDelegate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'poolDelegateCover', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'previewRedeem', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'previewWithdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'processRedeem', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'processWithdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeLoanImpairment', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeLoanManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeShares', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'requestRedeem', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'requestWithdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setActive', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setAllowedLender', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setAllowedSlippage', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setDelegateManagementFeeRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setImplementation', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setLiquidityCap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setMinRatio', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setOpenToPublic', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setPendingPoolDelegate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setWithdrawalManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalAssets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'triggerDefault', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unrealizedLosses', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'upgrade', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawCover', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawalManager', data: BytesLike): Result;
    events: {
        'AllowedLenderSet(address,bool)': EventFragment;
        'CollateralLiquidationFinished(address,uint256)': EventFragment;
        'CollateralLiquidationTriggered(address)': EventFragment;
        'CoverDeposited(uint256)': EventFragment;
        'CoverWithdrawn(uint256)': EventFragment;
        'DelegateManagementFeeRateSet(uint256)': EventFragment;
        'LiquidityCapSet(uint256)': EventFragment;
        'LoanFunded(address,address,uint256)': EventFragment;
        'LoanImpaired(address,uint256)': EventFragment;
        'LoanImpairmentRemoved(address)': EventFragment;
        'LoanManagerAdded(address)': EventFragment;
        'LoanManagerRemoved(address)': EventFragment;
        'LoanRefinanced(address,address,uint256,bytes[],uint256)': EventFragment;
        'OpenToPublic()': EventFragment;
        'PendingDelegateAccepted(address,address)': EventFragment;
        'PendingDelegateSet(address,address)': EventFragment;
        'PoolConfigured(address,address,uint256,uint256)': EventFragment;
        'RedeemProcessed(address,uint256,uint256)': EventFragment;
        'RedeemRequested(address,uint256)': EventFragment;
        'SetAsActive(bool)': EventFragment;
        'SharesRemoved(address,uint256)': EventFragment;
        'Upgraded(uint256,bytes)': EventFragment;
        'WithdrawalManagerSet(address)': EventFragment;
        'WithdrawalProcessed(address,uint256,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'AllowedLenderSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'CollateralLiquidationFinished'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'CollateralLiquidationTriggered'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'CoverDeposited'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'CoverWithdrawn'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DelegateManagementFeeRateSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LiquidityCapSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LoanFunded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LoanImpaired'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LoanImpairmentRemoved'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LoanManagerAdded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LoanManagerRemoved'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LoanRefinanced'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OpenToPublic'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PendingDelegateAccepted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PendingDelegateSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PoolConfigured'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RedeemProcessed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RedeemRequested'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SetAsActive'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SharesRemoved'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Upgraded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'WithdrawalManagerSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'WithdrawalProcessed'): EventFragment;
}
export interface AllowedLenderSetEventObject {
    lender_: string;
    isValid_: boolean;
}
export declare type AllowedLenderSetEvent = TypedEvent<[string, boolean], AllowedLenderSetEventObject>;
export declare type AllowedLenderSetEventFilter = TypedEventFilter<AllowedLenderSetEvent>;
export interface CollateralLiquidationFinishedEventObject {
    loan_: string;
    unrealizedLosses_: BigNumber;
}
export declare type CollateralLiquidationFinishedEvent = TypedEvent<[
    string,
    BigNumber
], CollateralLiquidationFinishedEventObject>;
export declare type CollateralLiquidationFinishedEventFilter = TypedEventFilter<CollateralLiquidationFinishedEvent>;
export interface CollateralLiquidationTriggeredEventObject {
    loan_: string;
}
export declare type CollateralLiquidationTriggeredEvent = TypedEvent<[string], CollateralLiquidationTriggeredEventObject>;
export declare type CollateralLiquidationTriggeredEventFilter = TypedEventFilter<CollateralLiquidationTriggeredEvent>;
export interface CoverDepositedEventObject {
    amount_: BigNumber;
}
export declare type CoverDepositedEvent = TypedEvent<[BigNumber], CoverDepositedEventObject>;
export declare type CoverDepositedEventFilter = TypedEventFilter<CoverDepositedEvent>;
export interface CoverWithdrawnEventObject {
    amount_: BigNumber;
}
export declare type CoverWithdrawnEvent = TypedEvent<[BigNumber], CoverWithdrawnEventObject>;
export declare type CoverWithdrawnEventFilter = TypedEventFilter<CoverWithdrawnEvent>;
export interface DelegateManagementFeeRateSetEventObject {
    managementFeeRate_: BigNumber;
}
export declare type DelegateManagementFeeRateSetEvent = TypedEvent<[BigNumber], DelegateManagementFeeRateSetEventObject>;
export declare type DelegateManagementFeeRateSetEventFilter = TypedEventFilter<DelegateManagementFeeRateSetEvent>;
export interface LiquidityCapSetEventObject {
    liquidityCap_: BigNumber;
}
export declare type LiquidityCapSetEvent = TypedEvent<[BigNumber], LiquidityCapSetEventObject>;
export declare type LiquidityCapSetEventFilter = TypedEventFilter<LiquidityCapSetEvent>;
export interface LoanFundedEventObject {
    loan_: string;
    loanManager_: string;
    amount_: BigNumber;
}
export declare type LoanFundedEvent = TypedEvent<[string, string, BigNumber], LoanFundedEventObject>;
export declare type LoanFundedEventFilter = TypedEventFilter<LoanFundedEvent>;
export interface LoanImpairedEventObject {
    loan_: string;
    newPaymentDueDate_: BigNumber;
}
export declare type LoanImpairedEvent = TypedEvent<[string, BigNumber], LoanImpairedEventObject>;
export declare type LoanImpairedEventFilter = TypedEventFilter<LoanImpairedEvent>;
export interface LoanImpairmentRemovedEventObject {
    loan_: string;
}
export declare type LoanImpairmentRemovedEvent = TypedEvent<[string], LoanImpairmentRemovedEventObject>;
export declare type LoanImpairmentRemovedEventFilter = TypedEventFilter<LoanImpairmentRemovedEvent>;
export interface LoanManagerAddedEventObject {
    loanManager_: string;
}
export declare type LoanManagerAddedEvent = TypedEvent<[string], LoanManagerAddedEventObject>;
export declare type LoanManagerAddedEventFilter = TypedEventFilter<LoanManagerAddedEvent>;
export interface LoanManagerRemovedEventObject {
    loanManager_: string;
}
export declare type LoanManagerRemovedEvent = TypedEvent<[string], LoanManagerRemovedEventObject>;
export declare type LoanManagerRemovedEventFilter = TypedEventFilter<LoanManagerRemovedEvent>;
export interface LoanRefinancedEventObject {
    loan_: string;
    refinancer_: string;
    deadline_: BigNumber;
    calls_: string[];
    principalIncrease_: BigNumber;
}
export declare type LoanRefinancedEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    string[],
    BigNumber
], LoanRefinancedEventObject>;
export declare type LoanRefinancedEventFilter = TypedEventFilter<LoanRefinancedEvent>;
export interface OpenToPublicEventObject {
}
export declare type OpenToPublicEvent = TypedEvent<[], OpenToPublicEventObject>;
export declare type OpenToPublicEventFilter = TypedEventFilter<OpenToPublicEvent>;
export interface PendingDelegateAcceptedEventObject {
    previousDelegate_: string;
    newDelegate_: string;
}
export declare type PendingDelegateAcceptedEvent = TypedEvent<[string, string], PendingDelegateAcceptedEventObject>;
export declare type PendingDelegateAcceptedEventFilter = TypedEventFilter<PendingDelegateAcceptedEvent>;
export interface PendingDelegateSetEventObject {
    previousDelegate_: string;
    newDelegate_: string;
}
export declare type PendingDelegateSetEvent = TypedEvent<[string, string], PendingDelegateSetEventObject>;
export declare type PendingDelegateSetEventFilter = TypedEventFilter<PendingDelegateSetEvent>;
export interface PoolConfiguredEventObject {
    loanManager_: string;
    withdrawalManager_: string;
    liquidityCap_: BigNumber;
    delegateManagementFeeRate_: BigNumber;
}
export declare type PoolConfiguredEvent = TypedEvent<[string, string, BigNumber, BigNumber], PoolConfiguredEventObject>;
export declare type PoolConfiguredEventFilter = TypedEventFilter<PoolConfiguredEvent>;
export interface RedeemProcessedEventObject {
    owner_: string;
    redeemableShares_: BigNumber;
    resultingAssets_: BigNumber;
}
export declare type RedeemProcessedEvent = TypedEvent<[string, BigNumber, BigNumber], RedeemProcessedEventObject>;
export declare type RedeemProcessedEventFilter = TypedEventFilter<RedeemProcessedEvent>;
export interface RedeemRequestedEventObject {
    owner_: string;
    shares_: BigNumber;
}
export declare type RedeemRequestedEvent = TypedEvent<[string, BigNumber], RedeemRequestedEventObject>;
export declare type RedeemRequestedEventFilter = TypedEventFilter<RedeemRequestedEvent>;
export interface SetAsActiveEventObject {
    active_: boolean;
}
export declare type SetAsActiveEvent = TypedEvent<[boolean], SetAsActiveEventObject>;
export declare type SetAsActiveEventFilter = TypedEventFilter<SetAsActiveEvent>;
export interface SharesRemovedEventObject {
    owner_: string;
    shares_: BigNumber;
}
export declare type SharesRemovedEvent = TypedEvent<[string, BigNumber], SharesRemovedEventObject>;
export declare type SharesRemovedEventFilter = TypedEventFilter<SharesRemovedEvent>;
export interface UpgradedEventObject {
    toVersion_: BigNumber;
    arguments_: string;
}
export declare type UpgradedEvent = TypedEvent<[BigNumber, string], UpgradedEventObject>;
export declare type UpgradedEventFilter = TypedEventFilter<UpgradedEvent>;
export interface WithdrawalManagerSetEventObject {
    withdrawalManager_: string;
}
export declare type WithdrawalManagerSetEvent = TypedEvent<[string], WithdrawalManagerSetEventObject>;
export declare type WithdrawalManagerSetEventFilter = TypedEventFilter<WithdrawalManagerSetEvent>;
export interface WithdrawalProcessedEventObject {
    owner_: string;
    redeemableShares_: BigNumber;
    resultingAssets_: BigNumber;
}
export declare type WithdrawalProcessedEvent = TypedEvent<[string, BigNumber, BigNumber], WithdrawalProcessedEventObject>;
export declare type WithdrawalProcessedEventFilter = TypedEventFilter<WithdrawalProcessedEvent>;
export interface MaplePoolManager extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: MaplePoolManagerInterface;
    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: {
        HUNDRED_PERCENT(overrides?: CallOverrides): Promise<[BigNumber]>;
        acceptNewTerms(loan_: PromiseOrValue<string>, refinancer_: PromiseOrValue<string>, deadline_: PromiseOrValue<BigNumberish>, calls_: PromiseOrValue<BytesLike>[], principalIncrease_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        acceptPendingPoolDelegate(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        active(overrides?: CallOverrides): Promise<[boolean]>;
        addLoanManager(loanManager_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        asset(overrides?: CallOverrides): Promise<[string]>;
        canCall(functionId_: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<string>, data_: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean, string] & {
            canCall_: boolean;
            errorMessage_: string;
        }>;
        configure(loanManager_: PromiseOrValue<string>, withdrawalManager_: PromiseOrValue<string>, liquidityCap_: PromiseOrValue<BigNumberish>, delegateManagementFeeRate_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        configured(overrides?: CallOverrides): Promise<[boolean]>;
        convertToExitShares(assets_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            shares_: BigNumber;
        }>;
        delegateManagementFeeRate(overrides?: CallOverrides): Promise<[BigNumber]>;
        depositCover(amount_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        factory(overrides?: CallOverrides): Promise<[string] & {
            factory_: string;
        }>;
        finishCollateralLiquidation(loan_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        fund(principal_: PromiseOrValue<BigNumberish>, loan_: PromiseOrValue<string>, loanManager_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getEscrowParams(arg0: PromiseOrValue<string>, shares_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, string] & {
            escrowShares_: BigNumber;
            destination_: string;
        }>;
        globals(overrides?: CallOverrides): Promise<[string] & {
            globals_: string;
        }>;
        governor(overrides?: CallOverrides): Promise<[string] & {
            governor_: string;
        }>;
        hasSufficientCover(overrides?: CallOverrides): Promise<[boolean] & {
            hasSufficientCover_: boolean;
        }>;
        impairLoan(loan_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        implementation(overrides?: CallOverrides): Promise<[string] & {
            implementation_: string;
        }>;
        isLoanManager(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isValidLender(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        liquidityCap(overrides?: CallOverrides): Promise<[BigNumber]>;
        loanManagerList(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        maxDeposit(receiver_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            maxAssets_: BigNumber;
        }>;
        maxMint(receiver_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            maxShares_: BigNumber;
        }>;
        maxRedeem(owner_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            maxShares_: BigNumber;
        }>;
        maxWithdraw(owner_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            maxAssets_: BigNumber;
        }>;
        migrate(migrator_: PromiseOrValue<string>, arguments_: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        openToPublic(overrides?: CallOverrides): Promise<[boolean]>;
        pendingPoolDelegate(overrides?: CallOverrides): Promise<[string]>;
        pool(overrides?: CallOverrides): Promise<[string]>;
        poolDelegate(overrides?: CallOverrides): Promise<[string]>;
        poolDelegateCover(overrides?: CallOverrides): Promise<[string]>;
        previewRedeem(owner_: PromiseOrValue<string>, shares_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            assets_: BigNumber;
        }>;
        previewWithdraw(owner_: PromiseOrValue<string>, assets_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            shares_: BigNumber;
        }>;
        processRedeem(shares_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        processWithdraw(assets_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        removeLoanImpairment(loan_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        removeLoanManager(loanManager_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        removeShares(shares_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        requestRedeem(shares_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        requestWithdraw(shares_: PromiseOrValue<BigNumberish>, assets_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setActive(active_: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setAllowedLender(lender_: PromiseOrValue<string>, isValid_: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setAllowedSlippage(loanManager_: PromiseOrValue<string>, collateralAsset_: PromiseOrValue<string>, allowedSlippage_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setDelegateManagementFeeRate(delegateManagementFeeRate_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setImplementation(implementation_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setLiquidityCap(liquidityCap_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setMinRatio(loanManager_: PromiseOrValue<string>, collateralAsset_: PromiseOrValue<string>, minRatio_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setOpenToPublic(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setPendingPoolDelegate(pendingPoolDelegate_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setWithdrawalManager(withdrawalManager_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        totalAssets(overrides?: CallOverrides): Promise<[BigNumber] & {
            totalAssets_: BigNumber;
        }>;
        triggerDefault(loan_: PromiseOrValue<string>, liquidatorFactory_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unrealizedLosses(overrides?: CallOverrides): Promise<[BigNumber] & {
            unrealizedLosses_: BigNumber;
        }>;
        upgrade(version_: PromiseOrValue<BigNumberish>, arguments_: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawCover(amount_: PromiseOrValue<BigNumberish>, recipient_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawalManager(overrides?: CallOverrides): Promise<[string]>;
    };
    HUNDRED_PERCENT(overrides?: CallOverrides): Promise<BigNumber>;
    acceptNewTerms(loan_: PromiseOrValue<string>, refinancer_: PromiseOrValue<string>, deadline_: PromiseOrValue<BigNumberish>, calls_: PromiseOrValue<BytesLike>[], principalIncrease_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    acceptPendingPoolDelegate(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    active(overrides?: CallOverrides): Promise<boolean>;
    addLoanManager(loanManager_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    asset(overrides?: CallOverrides): Promise<string>;
    canCall(functionId_: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<string>, data_: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean, string] & {
        canCall_: boolean;
        errorMessage_: string;
    }>;
    configure(loanManager_: PromiseOrValue<string>, withdrawalManager_: PromiseOrValue<string>, liquidityCap_: PromiseOrValue<BigNumberish>, delegateManagementFeeRate_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    configured(overrides?: CallOverrides): Promise<boolean>;
    convertToExitShares(assets_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    delegateManagementFeeRate(overrides?: CallOverrides): Promise<BigNumber>;
    depositCover(amount_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    factory(overrides?: CallOverrides): Promise<string>;
    finishCollateralLiquidation(loan_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    fund(principal_: PromiseOrValue<BigNumberish>, loan_: PromiseOrValue<string>, loanManager_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getEscrowParams(arg0: PromiseOrValue<string>, shares_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, string] & {
        escrowShares_: BigNumber;
        destination_: string;
    }>;
    globals(overrides?: CallOverrides): Promise<string>;
    governor(overrides?: CallOverrides): Promise<string>;
    hasSufficientCover(overrides?: CallOverrides): Promise<boolean>;
    impairLoan(loan_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    implementation(overrides?: CallOverrides): Promise<string>;
    isLoanManager(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isValidLender(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    liquidityCap(overrides?: CallOverrides): Promise<BigNumber>;
    loanManagerList(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    maxDeposit(receiver_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    maxMint(receiver_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    maxRedeem(owner_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    maxWithdraw(owner_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    migrate(migrator_: PromiseOrValue<string>, arguments_: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    openToPublic(overrides?: CallOverrides): Promise<boolean>;
    pendingPoolDelegate(overrides?: CallOverrides): Promise<string>;
    pool(overrides?: CallOverrides): Promise<string>;
    poolDelegate(overrides?: CallOverrides): Promise<string>;
    poolDelegateCover(overrides?: CallOverrides): Promise<string>;
    previewRedeem(owner_: PromiseOrValue<string>, shares_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    previewWithdraw(owner_: PromiseOrValue<string>, assets_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    processRedeem(shares_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    processWithdraw(assets_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    removeLoanImpairment(loan_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    removeLoanManager(loanManager_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    removeShares(shares_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    requestRedeem(shares_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    requestWithdraw(shares_: PromiseOrValue<BigNumberish>, assets_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setActive(active_: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setAllowedLender(lender_: PromiseOrValue<string>, isValid_: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setAllowedSlippage(loanManager_: PromiseOrValue<string>, collateralAsset_: PromiseOrValue<string>, allowedSlippage_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setDelegateManagementFeeRate(delegateManagementFeeRate_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setImplementation(implementation_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setLiquidityCap(liquidityCap_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setMinRatio(loanManager_: PromiseOrValue<string>, collateralAsset_: PromiseOrValue<string>, minRatio_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setOpenToPublic(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setPendingPoolDelegate(pendingPoolDelegate_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setWithdrawalManager(withdrawalManager_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    totalAssets(overrides?: CallOverrides): Promise<BigNumber>;
    triggerDefault(loan_: PromiseOrValue<string>, liquidatorFactory_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unrealizedLosses(overrides?: CallOverrides): Promise<BigNumber>;
    upgrade(version_: PromiseOrValue<BigNumberish>, arguments_: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawCover(amount_: PromiseOrValue<BigNumberish>, recipient_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawalManager(overrides?: CallOverrides): Promise<string>;
    callStatic: {
        HUNDRED_PERCENT(overrides?: CallOverrides): Promise<BigNumber>;
        acceptNewTerms(loan_: PromiseOrValue<string>, refinancer_: PromiseOrValue<string>, deadline_: PromiseOrValue<BigNumberish>, calls_: PromiseOrValue<BytesLike>[], principalIncrease_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        acceptPendingPoolDelegate(overrides?: CallOverrides): Promise<void>;
        active(overrides?: CallOverrides): Promise<boolean>;
        addLoanManager(loanManager_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        asset(overrides?: CallOverrides): Promise<string>;
        canCall(functionId_: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<string>, data_: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean, string] & {
            canCall_: boolean;
            errorMessage_: string;
        }>;
        configure(loanManager_: PromiseOrValue<string>, withdrawalManager_: PromiseOrValue<string>, liquidityCap_: PromiseOrValue<BigNumberish>, delegateManagementFeeRate_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        configured(overrides?: CallOverrides): Promise<boolean>;
        convertToExitShares(assets_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        delegateManagementFeeRate(overrides?: CallOverrides): Promise<BigNumber>;
        depositCover(amount_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        factory(overrides?: CallOverrides): Promise<string>;
        finishCollateralLiquidation(loan_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        fund(principal_: PromiseOrValue<BigNumberish>, loan_: PromiseOrValue<string>, loanManager_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        getEscrowParams(arg0: PromiseOrValue<string>, shares_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, string] & {
            escrowShares_: BigNumber;
            destination_: string;
        }>;
        globals(overrides?: CallOverrides): Promise<string>;
        governor(overrides?: CallOverrides): Promise<string>;
        hasSufficientCover(overrides?: CallOverrides): Promise<boolean>;
        impairLoan(loan_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        implementation(overrides?: CallOverrides): Promise<string>;
        isLoanManager(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isValidLender(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        liquidityCap(overrides?: CallOverrides): Promise<BigNumber>;
        loanManagerList(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        maxDeposit(receiver_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxMint(receiver_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxRedeem(owner_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxWithdraw(owner_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        migrate(migrator_: PromiseOrValue<string>, arguments_: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        openToPublic(overrides?: CallOverrides): Promise<boolean>;
        pendingPoolDelegate(overrides?: CallOverrides): Promise<string>;
        pool(overrides?: CallOverrides): Promise<string>;
        poolDelegate(overrides?: CallOverrides): Promise<string>;
        poolDelegateCover(overrides?: CallOverrides): Promise<string>;
        previewRedeem(owner_: PromiseOrValue<string>, shares_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        previewWithdraw(owner_: PromiseOrValue<string>, assets_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        processRedeem(shares_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            redeemableShares_: BigNumber;
            resultingAssets_: BigNumber;
        }>;
        processWithdraw(assets_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            redeemableShares_: BigNumber;
            resultingAssets_: BigNumber;
        }>;
        removeLoanImpairment(loan_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        removeLoanManager(loanManager_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        removeShares(shares_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        requestRedeem(shares_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        requestWithdraw(shares_: PromiseOrValue<BigNumberish>, assets_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setActive(active_: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setAllowedLender(lender_: PromiseOrValue<string>, isValid_: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setAllowedSlippage(loanManager_: PromiseOrValue<string>, collateralAsset_: PromiseOrValue<string>, allowedSlippage_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setDelegateManagementFeeRate(delegateManagementFeeRate_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setImplementation(implementation_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setLiquidityCap(liquidityCap_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setMinRatio(loanManager_: PromiseOrValue<string>, collateralAsset_: PromiseOrValue<string>, minRatio_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setOpenToPublic(overrides?: CallOverrides): Promise<void>;
        setPendingPoolDelegate(pendingPoolDelegate_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setWithdrawalManager(withdrawalManager_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        totalAssets(overrides?: CallOverrides): Promise<BigNumber>;
        triggerDefault(loan_: PromiseOrValue<string>, liquidatorFactory_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        unrealizedLosses(overrides?: CallOverrides): Promise<BigNumber>;
        upgrade(version_: PromiseOrValue<BigNumberish>, arguments_: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        withdrawCover(amount_: PromiseOrValue<BigNumberish>, recipient_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        withdrawalManager(overrides?: CallOverrides): Promise<string>;
    };
    filters: {
        'AllowedLenderSet(address,bool)'(lender_?: PromiseOrValue<string> | null, isValid_?: null): AllowedLenderSetEventFilter;
        AllowedLenderSet(lender_?: PromiseOrValue<string> | null, isValid_?: null): AllowedLenderSetEventFilter;
        'CollateralLiquidationFinished(address,uint256)'(loan_?: PromiseOrValue<string> | null, unrealizedLosses_?: null): CollateralLiquidationFinishedEventFilter;
        CollateralLiquidationFinished(loan_?: PromiseOrValue<string> | null, unrealizedLosses_?: null): CollateralLiquidationFinishedEventFilter;
        'CollateralLiquidationTriggered(address)'(loan_?: PromiseOrValue<string> | null): CollateralLiquidationTriggeredEventFilter;
        CollateralLiquidationTriggered(loan_?: PromiseOrValue<string> | null): CollateralLiquidationTriggeredEventFilter;
        'CoverDeposited(uint256)'(amount_?: null): CoverDepositedEventFilter;
        CoverDeposited(amount_?: null): CoverDepositedEventFilter;
        'CoverWithdrawn(uint256)'(amount_?: null): CoverWithdrawnEventFilter;
        CoverWithdrawn(amount_?: null): CoverWithdrawnEventFilter;
        'DelegateManagementFeeRateSet(uint256)'(managementFeeRate_?: null): DelegateManagementFeeRateSetEventFilter;
        DelegateManagementFeeRateSet(managementFeeRate_?: null): DelegateManagementFeeRateSetEventFilter;
        'LiquidityCapSet(uint256)'(liquidityCap_?: null): LiquidityCapSetEventFilter;
        LiquidityCapSet(liquidityCap_?: null): LiquidityCapSetEventFilter;
        'LoanFunded(address,address,uint256)'(loan_?: PromiseOrValue<string> | null, loanManager_?: PromiseOrValue<string> | null, amount_?: null): LoanFundedEventFilter;
        LoanFunded(loan_?: PromiseOrValue<string> | null, loanManager_?: PromiseOrValue<string> | null, amount_?: null): LoanFundedEventFilter;
        'LoanImpaired(address,uint256)'(loan_?: PromiseOrValue<string> | null, newPaymentDueDate_?: null): LoanImpairedEventFilter;
        LoanImpaired(loan_?: PromiseOrValue<string> | null, newPaymentDueDate_?: null): LoanImpairedEventFilter;
        'LoanImpairmentRemoved(address)'(loan_?: PromiseOrValue<string> | null): LoanImpairmentRemovedEventFilter;
        LoanImpairmentRemoved(loan_?: PromiseOrValue<string> | null): LoanImpairmentRemovedEventFilter;
        'LoanManagerAdded(address)'(loanManager_?: PromiseOrValue<string> | null): LoanManagerAddedEventFilter;
        LoanManagerAdded(loanManager_?: PromiseOrValue<string> | null): LoanManagerAddedEventFilter;
        'LoanManagerRemoved(address)'(loanManager_?: PromiseOrValue<string> | null): LoanManagerRemovedEventFilter;
        LoanManagerRemoved(loanManager_?: PromiseOrValue<string> | null): LoanManagerRemovedEventFilter;
        'LoanRefinanced(address,address,uint256,bytes[],uint256)'(loan_?: PromiseOrValue<string> | null, refinancer_?: null, deadline_?: null, calls_?: null, principalIncrease_?: null): LoanRefinancedEventFilter;
        LoanRefinanced(loan_?: PromiseOrValue<string> | null, refinancer_?: null, deadline_?: null, calls_?: null, principalIncrease_?: null): LoanRefinancedEventFilter;
        'OpenToPublic()'(): OpenToPublicEventFilter;
        OpenToPublic(): OpenToPublicEventFilter;
        'PendingDelegateAccepted(address,address)'(previousDelegate_?: PromiseOrValue<string> | null, newDelegate_?: PromiseOrValue<string> | null): PendingDelegateAcceptedEventFilter;
        PendingDelegateAccepted(previousDelegate_?: PromiseOrValue<string> | null, newDelegate_?: PromiseOrValue<string> | null): PendingDelegateAcceptedEventFilter;
        'PendingDelegateSet(address,address)'(previousDelegate_?: PromiseOrValue<string> | null, newDelegate_?: PromiseOrValue<string> | null): PendingDelegateSetEventFilter;
        PendingDelegateSet(previousDelegate_?: PromiseOrValue<string> | null, newDelegate_?: PromiseOrValue<string> | null): PendingDelegateSetEventFilter;
        'PoolConfigured(address,address,uint256,uint256)'(loanManager_?: null, withdrawalManager_?: null, liquidityCap_?: null, delegateManagementFeeRate_?: null): PoolConfiguredEventFilter;
        PoolConfigured(loanManager_?: null, withdrawalManager_?: null, liquidityCap_?: null, delegateManagementFeeRate_?: null): PoolConfiguredEventFilter;
        'RedeemProcessed(address,uint256,uint256)'(owner_?: PromiseOrValue<string> | null, redeemableShares_?: null, resultingAssets_?: null): RedeemProcessedEventFilter;
        RedeemProcessed(owner_?: PromiseOrValue<string> | null, redeemableShares_?: null, resultingAssets_?: null): RedeemProcessedEventFilter;
        'RedeemRequested(address,uint256)'(owner_?: PromiseOrValue<string> | null, shares_?: null): RedeemRequestedEventFilter;
        RedeemRequested(owner_?: PromiseOrValue<string> | null, shares_?: null): RedeemRequestedEventFilter;
        'SetAsActive(bool)'(active_?: null): SetAsActiveEventFilter;
        SetAsActive(active_?: null): SetAsActiveEventFilter;
        'SharesRemoved(address,uint256)'(owner_?: PromiseOrValue<string> | null, shares_?: null): SharesRemovedEventFilter;
        SharesRemoved(owner_?: PromiseOrValue<string> | null, shares_?: null): SharesRemovedEventFilter;
        'Upgraded(uint256,bytes)'(toVersion_?: null, arguments_?: null): UpgradedEventFilter;
        Upgraded(toVersion_?: null, arguments_?: null): UpgradedEventFilter;
        'WithdrawalManagerSet(address)'(withdrawalManager_?: PromiseOrValue<string> | null): WithdrawalManagerSetEventFilter;
        WithdrawalManagerSet(withdrawalManager_?: PromiseOrValue<string> | null): WithdrawalManagerSetEventFilter;
        'WithdrawalProcessed(address,uint256,uint256)'(owner_?: PromiseOrValue<string> | null, redeemableShares_?: null, resultingAssets_?: null): WithdrawalProcessedEventFilter;
        WithdrawalProcessed(owner_?: PromiseOrValue<string> | null, redeemableShares_?: null, resultingAssets_?: null): WithdrawalProcessedEventFilter;
    };
    estimateGas: {
        HUNDRED_PERCENT(overrides?: CallOverrides): Promise<BigNumber>;
        acceptNewTerms(loan_: PromiseOrValue<string>, refinancer_: PromiseOrValue<string>, deadline_: PromiseOrValue<BigNumberish>, calls_: PromiseOrValue<BytesLike>[], principalIncrease_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        acceptPendingPoolDelegate(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        active(overrides?: CallOverrides): Promise<BigNumber>;
        addLoanManager(loanManager_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        asset(overrides?: CallOverrides): Promise<BigNumber>;
        canCall(functionId_: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<string>, data_: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        configure(loanManager_: PromiseOrValue<string>, withdrawalManager_: PromiseOrValue<string>, liquidityCap_: PromiseOrValue<BigNumberish>, delegateManagementFeeRate_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        configured(overrides?: CallOverrides): Promise<BigNumber>;
        convertToExitShares(assets_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        delegateManagementFeeRate(overrides?: CallOverrides): Promise<BigNumber>;
        depositCover(amount_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        factory(overrides?: CallOverrides): Promise<BigNumber>;
        finishCollateralLiquidation(loan_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        fund(principal_: PromiseOrValue<BigNumberish>, loan_: PromiseOrValue<string>, loanManager_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getEscrowParams(arg0: PromiseOrValue<string>, shares_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        globals(overrides?: CallOverrides): Promise<BigNumber>;
        governor(overrides?: CallOverrides): Promise<BigNumber>;
        hasSufficientCover(overrides?: CallOverrides): Promise<BigNumber>;
        impairLoan(loan_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        implementation(overrides?: CallOverrides): Promise<BigNumber>;
        isLoanManager(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isValidLender(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        liquidityCap(overrides?: CallOverrides): Promise<BigNumber>;
        loanManagerList(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        maxDeposit(receiver_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxMint(receiver_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxRedeem(owner_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxWithdraw(owner_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        migrate(migrator_: PromiseOrValue<string>, arguments_: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        openToPublic(overrides?: CallOverrides): Promise<BigNumber>;
        pendingPoolDelegate(overrides?: CallOverrides): Promise<BigNumber>;
        pool(overrides?: CallOverrides): Promise<BigNumber>;
        poolDelegate(overrides?: CallOverrides): Promise<BigNumber>;
        poolDelegateCover(overrides?: CallOverrides): Promise<BigNumber>;
        previewRedeem(owner_: PromiseOrValue<string>, shares_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        previewWithdraw(owner_: PromiseOrValue<string>, assets_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        processRedeem(shares_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        processWithdraw(assets_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        removeLoanImpairment(loan_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        removeLoanManager(loanManager_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        removeShares(shares_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        requestRedeem(shares_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        requestWithdraw(shares_: PromiseOrValue<BigNumberish>, assets_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setActive(active_: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setAllowedLender(lender_: PromiseOrValue<string>, isValid_: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setAllowedSlippage(loanManager_: PromiseOrValue<string>, collateralAsset_: PromiseOrValue<string>, allowedSlippage_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setDelegateManagementFeeRate(delegateManagementFeeRate_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setImplementation(implementation_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setLiquidityCap(liquidityCap_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setMinRatio(loanManager_: PromiseOrValue<string>, collateralAsset_: PromiseOrValue<string>, minRatio_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setOpenToPublic(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setPendingPoolDelegate(pendingPoolDelegate_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setWithdrawalManager(withdrawalManager_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        totalAssets(overrides?: CallOverrides): Promise<BigNumber>;
        triggerDefault(loan_: PromiseOrValue<string>, liquidatorFactory_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unrealizedLosses(overrides?: CallOverrides): Promise<BigNumber>;
        upgrade(version_: PromiseOrValue<BigNumberish>, arguments_: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawCover(amount_: PromiseOrValue<BigNumberish>, recipient_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawalManager(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        HUNDRED_PERCENT(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        acceptNewTerms(loan_: PromiseOrValue<string>, refinancer_: PromiseOrValue<string>, deadline_: PromiseOrValue<BigNumberish>, calls_: PromiseOrValue<BytesLike>[], principalIncrease_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        acceptPendingPoolDelegate(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        active(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        addLoanManager(loanManager_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        asset(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        canCall(functionId_: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<string>, data_: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        configure(loanManager_: PromiseOrValue<string>, withdrawalManager_: PromiseOrValue<string>, liquidityCap_: PromiseOrValue<BigNumberish>, delegateManagementFeeRate_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        configured(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        convertToExitShares(assets_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        delegateManagementFeeRate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        depositCover(amount_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        factory(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        finishCollateralLiquidation(loan_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        fund(principal_: PromiseOrValue<BigNumberish>, loan_: PromiseOrValue<string>, loanManager_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getEscrowParams(arg0: PromiseOrValue<string>, shares_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        globals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        governor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        hasSufficientCover(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        impairLoan(loan_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        implementation(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isLoanManager(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isValidLender(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        liquidityCap(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        loanManagerList(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxDeposit(receiver_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxMint(receiver_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxRedeem(owner_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxWithdraw(owner_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        migrate(migrator_: PromiseOrValue<string>, arguments_: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        openToPublic(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingPoolDelegate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pool(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolDelegate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolDelegateCover(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        previewRedeem(owner_: PromiseOrValue<string>, shares_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        previewWithdraw(owner_: PromiseOrValue<string>, assets_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        processRedeem(shares_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        processWithdraw(assets_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        removeLoanImpairment(loan_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        removeLoanManager(loanManager_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        removeShares(shares_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        requestRedeem(shares_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        requestWithdraw(shares_: PromiseOrValue<BigNumberish>, assets_: PromiseOrValue<BigNumberish>, owner_: PromiseOrValue<string>, sender_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setActive(active_: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setAllowedLender(lender_: PromiseOrValue<string>, isValid_: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setAllowedSlippage(loanManager_: PromiseOrValue<string>, collateralAsset_: PromiseOrValue<string>, allowedSlippage_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setDelegateManagementFeeRate(delegateManagementFeeRate_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setImplementation(implementation_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setLiquidityCap(liquidityCap_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setMinRatio(loanManager_: PromiseOrValue<string>, collateralAsset_: PromiseOrValue<string>, minRatio_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setOpenToPublic(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setPendingPoolDelegate(pendingPoolDelegate_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setWithdrawalManager(withdrawalManager_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        totalAssets(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        triggerDefault(loan_: PromiseOrValue<string>, liquidatorFactory_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unrealizedLosses(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        upgrade(version_: PromiseOrValue<BigNumberish>, arguments_: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawCover(amount_: PromiseOrValue<BigNumberish>, recipient_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawalManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
