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 ZhartaLendingPoolCoreInterface extends utils.Interface {
    functions: {
        'lendersArray()': FunctionFragment;
        'computeWithdrawableAmount(address)': FunctionFragment;
        'fundsInPool()': FunctionFragment;
        'currentAmountDeposited(address)': FunctionFragment;
        'totalAmountDeposited(address)': FunctionFragment;
        'totalAmountWithdrawn(address)': FunctionFragment;
        'sharesBasisPoints(address)': FunctionFragment;
        'activeForRewards(address)': FunctionFragment;
        'migrateLender(address,uint256,uint256,uint256,uint256,bool)': FunctionFragment;
        'migrate(address)': FunctionFragment;
        'proposeOwner(address)': FunctionFragment;
        'claimOwnership()': FunctionFragment;
        'setLendingPoolPeripheralAddress(address)': FunctionFragment;
        'deposit(address,address,uint256)': FunctionFragment;
        'withdraw(address,address,uint256)': FunctionFragment;
        'sendFunds(address,uint256)': FunctionFragment;
        'receiveFunds(address,uint256,uint256,uint256)': FunctionFragment;
        'transferProtocolFees(address,address,uint256)': FunctionFragment;
        'owner()': FunctionFragment;
        'proposedOwner()': FunctionFragment;
        'lendingPoolPeripheral()': FunctionFragment;
        'erc20TokenContract()': FunctionFragment;
        'funds(address)': FunctionFragment;
        'knownLenders(address)': FunctionFragment;
        'activeLenders()': FunctionFragment;
        'fundsAvailable()': FunctionFragment;
        'fundsInvested()': FunctionFragment;
        'totalFundsInvested()': FunctionFragment;
        'totalRewards()': FunctionFragment;
        'totalSharesBasisPoints()': FunctionFragment;
        'migrationDone()': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'lendersArray' | 'computeWithdrawableAmount' | 'fundsInPool' | 'currentAmountDeposited' | 'totalAmountDeposited' | 'totalAmountWithdrawn' | 'sharesBasisPoints' | 'activeForRewards' | 'migrateLender' | 'migrate' | 'proposeOwner' | 'claimOwnership' | 'setLendingPoolPeripheralAddress' | 'deposit' | 'withdraw' | 'sendFunds' | 'receiveFunds' | 'transferProtocolFees' | 'owner' | 'proposedOwner' | 'lendingPoolPeripheral' | 'erc20TokenContract' | 'funds' | 'knownLenders' | 'activeLenders' | 'fundsAvailable' | 'fundsInvested' | 'totalFundsInvested' | 'totalRewards' | 'totalSharesBasisPoints' | 'migrationDone'): FunctionFragment;
    encodeFunctionData(functionFragment: 'lendersArray', values?: undefined): string;
    encodeFunctionData(functionFragment: 'computeWithdrawableAmount', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'fundsInPool', values?: undefined): string;
    encodeFunctionData(functionFragment: 'currentAmountDeposited', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'totalAmountDeposited', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'totalAmountWithdrawn', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'sharesBasisPoints', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'activeForRewards', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'migrateLender', values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<boolean>
    ]): string;
    encodeFunctionData(functionFragment: 'migrate', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'proposeOwner', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claimOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setLendingPoolPeripheralAddress', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'deposit', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'withdraw', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'sendFunds', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'receiveFunds', values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'transferProtocolFees', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'proposedOwner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'lendingPoolPeripheral', values?: undefined): string;
    encodeFunctionData(functionFragment: 'erc20TokenContract', values?: undefined): string;
    encodeFunctionData(functionFragment: 'funds', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'knownLenders', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'activeLenders', values?: undefined): string;
    encodeFunctionData(functionFragment: 'fundsAvailable', values?: undefined): string;
    encodeFunctionData(functionFragment: 'fundsInvested', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalFundsInvested', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalRewards', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalSharesBasisPoints', values?: undefined): string;
    encodeFunctionData(functionFragment: 'migrationDone', values?: undefined): string;
    decodeFunctionResult(functionFragment: 'lendersArray', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'computeWithdrawableAmount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'fundsInPool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'currentAmountDeposited', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalAmountDeposited', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalAmountWithdrawn', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'sharesBasisPoints', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'activeForRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'migrateLender', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'migrate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'proposeOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setLendingPoolPeripheralAddress', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'sendFunds', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'receiveFunds', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferProtocolFees', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'proposedOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lendingPoolPeripheral', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'erc20TokenContract', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'funds', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'knownLenders', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'activeLenders', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'fundsAvailable', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'fundsInvested', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalFundsInvested', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSharesBasisPoints', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'migrationDone', data: BytesLike): Result;
    events: {
        'OwnerProposed(address,address,address,address,address)': EventFragment;
        'OwnershipTransferred(address,address,address,address,address)': EventFragment;
        'LendingPoolPeripheralAddressSet(address,address,address,address)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'OwnerProposed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LendingPoolPeripheralAddressSet'): EventFragment;
}
export interface OwnerProposedEventObject {
    ownerIndexed: string;
    proposedOwnerIndexed: string;
    owner: string;
    proposedOwner: string;
    erc20TokenContract: string;
}
export declare type OwnerProposedEvent = TypedEvent<[string, string, string, string, string], OwnerProposedEventObject>;
export declare type OwnerProposedEventFilter = TypedEventFilter<OwnerProposedEvent>;
export interface OwnershipTransferredEventObject {
    ownerIndexed: string;
    proposedOwnerIndexed: string;
    owner: string;
    proposedOwner: string;
    erc20TokenContract: string;
}
export declare type OwnershipTransferredEvent = TypedEvent<[
    string,
    string,
    string,
    string,
    string
], OwnershipTransferredEventObject>;
export declare type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface LendingPoolPeripheralAddressSetEventObject {
    erc20TokenContractIndexed: string;
    currentValue: string;
    newValue: string;
    erc20TokenContract: string;
}
export declare type LendingPoolPeripheralAddressSetEvent = TypedEvent<[
    string,
    string,
    string,
    string
], LendingPoolPeripheralAddressSetEventObject>;
export declare type LendingPoolPeripheralAddressSetEventFilter = TypedEventFilter<LendingPoolPeripheralAddressSetEvent>;
export interface ZhartaLendingPoolCore extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: ZhartaLendingPoolCoreInterface;
    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: {
        lendersArray(overrides?: CallOverrides): Promise<[string[]]>;
        computeWithdrawableAmount(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        fundsInPool(overrides?: CallOverrides): Promise<[BigNumber]>;
        currentAmountDeposited(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalAmountDeposited(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalAmountWithdrawn(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        sharesBasisPoints(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        activeForRewards(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        migrateLender(_wallet: PromiseOrValue<string>, _currentAmountDeposited: PromiseOrValue<BigNumberish>, _totalAmountDeposited: PromiseOrValue<BigNumberish>, _totalAmountWithdrawn: PromiseOrValue<BigNumberish>, _sharesBasisPoints: PromiseOrValue<BigNumberish>, _activeForRewards: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        migrate(_from: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        proposeOwner(_address: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setLendingPoolPeripheralAddress(_address: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        deposit(_lender: PromiseOrValue<string>, _payer: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdraw(_lender: PromiseOrValue<string>, _wallet: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        sendFunds(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        receiveFunds(_borrower: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _rewardsAmount: PromiseOrValue<BigNumberish>, _investedAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferProtocolFees(_borrower: PromiseOrValue<string>, _protocolWallet: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        proposedOwner(overrides?: CallOverrides): Promise<[string]>;
        lendingPoolPeripheral(overrides?: CallOverrides): Promise<[string]>;
        erc20TokenContract(overrides?: CallOverrides): Promise<[string]>;
        funds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            [
                BigNumber,
                BigNumber,
                BigNumber,
                BigNumber,
                boolean
            ] & {
                currentAmountDeposited: BigNumber;
                totalAmountDeposited: BigNumber;
                totalAmountWithdrawn: BigNumber;
                sharesBasisPoints: BigNumber;
                activeForRewards: boolean;
            }
        ]>;
        knownLenders(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        activeLenders(overrides?: CallOverrides): Promise<[BigNumber]>;
        fundsAvailable(overrides?: CallOverrides): Promise<[BigNumber]>;
        fundsInvested(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalFundsInvested(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalRewards(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalSharesBasisPoints(overrides?: CallOverrides): Promise<[BigNumber]>;
        migrationDone(overrides?: CallOverrides): Promise<[boolean]>;
    };
    lendersArray(overrides?: CallOverrides): Promise<string[]>;
    computeWithdrawableAmount(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    fundsInPool(overrides?: CallOverrides): Promise<BigNumber>;
    currentAmountDeposited(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    totalAmountDeposited(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    totalAmountWithdrawn(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    sharesBasisPoints(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    activeForRewards(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    migrateLender(_wallet: PromiseOrValue<string>, _currentAmountDeposited: PromiseOrValue<BigNumberish>, _totalAmountDeposited: PromiseOrValue<BigNumberish>, _totalAmountWithdrawn: PromiseOrValue<BigNumberish>, _sharesBasisPoints: PromiseOrValue<BigNumberish>, _activeForRewards: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    migrate(_from: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    proposeOwner(_address: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setLendingPoolPeripheralAddress(_address: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    deposit(_lender: PromiseOrValue<string>, _payer: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdraw(_lender: PromiseOrValue<string>, _wallet: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    sendFunds(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    receiveFunds(_borrower: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _rewardsAmount: PromiseOrValue<BigNumberish>, _investedAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferProtocolFees(_borrower: PromiseOrValue<string>, _protocolWallet: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    owner(overrides?: CallOverrides): Promise<string>;
    proposedOwner(overrides?: CallOverrides): Promise<string>;
    lendingPoolPeripheral(overrides?: CallOverrides): Promise<string>;
    erc20TokenContract(overrides?: CallOverrides): Promise<string>;
    funds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        boolean
    ] & {
        currentAmountDeposited: BigNumber;
        totalAmountDeposited: BigNumber;
        totalAmountWithdrawn: BigNumber;
        sharesBasisPoints: BigNumber;
        activeForRewards: boolean;
    }>;
    knownLenders(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    activeLenders(overrides?: CallOverrides): Promise<BigNumber>;
    fundsAvailable(overrides?: CallOverrides): Promise<BigNumber>;
    fundsInvested(overrides?: CallOverrides): Promise<BigNumber>;
    totalFundsInvested(overrides?: CallOverrides): Promise<BigNumber>;
    totalRewards(overrides?: CallOverrides): Promise<BigNumber>;
    totalSharesBasisPoints(overrides?: CallOverrides): Promise<BigNumber>;
    migrationDone(overrides?: CallOverrides): Promise<boolean>;
    callStatic: {
        lendersArray(overrides?: CallOverrides): Promise<string[]>;
        computeWithdrawableAmount(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        fundsInPool(overrides?: CallOverrides): Promise<BigNumber>;
        currentAmountDeposited(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalAmountDeposited(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalAmountWithdrawn(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        sharesBasisPoints(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        activeForRewards(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        migrateLender(_wallet: PromiseOrValue<string>, _currentAmountDeposited: PromiseOrValue<BigNumberish>, _totalAmountDeposited: PromiseOrValue<BigNumberish>, _totalAmountWithdrawn: PromiseOrValue<BigNumberish>, _sharesBasisPoints: PromiseOrValue<BigNumberish>, _activeForRewards: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        migrate(_from: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        proposeOwner(_address: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        claimOwnership(overrides?: CallOverrides): Promise<void>;
        setLendingPoolPeripheralAddress(_address: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        deposit(_lender: PromiseOrValue<string>, _payer: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        withdraw(_lender: PromiseOrValue<string>, _wallet: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        sendFunds(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        receiveFunds(_borrower: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _rewardsAmount: PromiseOrValue<BigNumberish>, _investedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        transferProtocolFees(_borrower: PromiseOrValue<string>, _protocolWallet: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        owner(overrides?: CallOverrides): Promise<string>;
        proposedOwner(overrides?: CallOverrides): Promise<string>;
        lendingPoolPeripheral(overrides?: CallOverrides): Promise<string>;
        erc20TokenContract(overrides?: CallOverrides): Promise<string>;
        funds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            boolean
        ] & {
            currentAmountDeposited: BigNumber;
            totalAmountDeposited: BigNumber;
            totalAmountWithdrawn: BigNumber;
            sharesBasisPoints: BigNumber;
            activeForRewards: boolean;
        }>;
        knownLenders(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        activeLenders(overrides?: CallOverrides): Promise<BigNumber>;
        fundsAvailable(overrides?: CallOverrides): Promise<BigNumber>;
        fundsInvested(overrides?: CallOverrides): Promise<BigNumber>;
        totalFundsInvested(overrides?: CallOverrides): Promise<BigNumber>;
        totalRewards(overrides?: CallOverrides): Promise<BigNumber>;
        totalSharesBasisPoints(overrides?: CallOverrides): Promise<BigNumber>;
        migrationDone(overrides?: CallOverrides): Promise<boolean>;
    };
    filters: {
        'OwnerProposed(address,address,address,address,address)'(ownerIndexed?: PromiseOrValue<string> | null, proposedOwnerIndexed?: PromiseOrValue<string> | null, owner?: null, proposedOwner?: null, erc20TokenContract?: null): OwnerProposedEventFilter;
        OwnerProposed(ownerIndexed?: PromiseOrValue<string> | null, proposedOwnerIndexed?: PromiseOrValue<string> | null, owner?: null, proposedOwner?: null, erc20TokenContract?: null): OwnerProposedEventFilter;
        'OwnershipTransferred(address,address,address,address,address)'(ownerIndexed?: PromiseOrValue<string> | null, proposedOwnerIndexed?: PromiseOrValue<string> | null, owner?: null, proposedOwner?: null, erc20TokenContract?: null): OwnershipTransferredEventFilter;
        OwnershipTransferred(ownerIndexed?: PromiseOrValue<string> | null, proposedOwnerIndexed?: PromiseOrValue<string> | null, owner?: null, proposedOwner?: null, erc20TokenContract?: null): OwnershipTransferredEventFilter;
        'LendingPoolPeripheralAddressSet(address,address,address,address)'(erc20TokenContractIndexed?: PromiseOrValue<string> | null, currentValue?: null, newValue?: null, erc20TokenContract?: null): LendingPoolPeripheralAddressSetEventFilter;
        LendingPoolPeripheralAddressSet(erc20TokenContractIndexed?: PromiseOrValue<string> | null, currentValue?: null, newValue?: null, erc20TokenContract?: null): LendingPoolPeripheralAddressSetEventFilter;
    };
    estimateGas: {
        lendersArray(overrides?: CallOverrides): Promise<BigNumber>;
        computeWithdrawableAmount(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        fundsInPool(overrides?: CallOverrides): Promise<BigNumber>;
        currentAmountDeposited(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalAmountDeposited(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalAmountWithdrawn(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        sharesBasisPoints(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        activeForRewards(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        migrateLender(_wallet: PromiseOrValue<string>, _currentAmountDeposited: PromiseOrValue<BigNumberish>, _totalAmountDeposited: PromiseOrValue<BigNumberish>, _totalAmountWithdrawn: PromiseOrValue<BigNumberish>, _sharesBasisPoints: PromiseOrValue<BigNumberish>, _activeForRewards: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        migrate(_from: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        proposeOwner(_address: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setLendingPoolPeripheralAddress(_address: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        deposit(_lender: PromiseOrValue<string>, _payer: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdraw(_lender: PromiseOrValue<string>, _wallet: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        sendFunds(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        receiveFunds(_borrower: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _rewardsAmount: PromiseOrValue<BigNumberish>, _investedAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferProtocolFees(_borrower: PromiseOrValue<string>, _protocolWallet: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        proposedOwner(overrides?: CallOverrides): Promise<BigNumber>;
        lendingPoolPeripheral(overrides?: CallOverrides): Promise<BigNumber>;
        erc20TokenContract(overrides?: CallOverrides): Promise<BigNumber>;
        funds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        knownLenders(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        activeLenders(overrides?: CallOverrides): Promise<BigNumber>;
        fundsAvailable(overrides?: CallOverrides): Promise<BigNumber>;
        fundsInvested(overrides?: CallOverrides): Promise<BigNumber>;
        totalFundsInvested(overrides?: CallOverrides): Promise<BigNumber>;
        totalRewards(overrides?: CallOverrides): Promise<BigNumber>;
        totalSharesBasisPoints(overrides?: CallOverrides): Promise<BigNumber>;
        migrationDone(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        lendersArray(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        computeWithdrawableAmount(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        fundsInPool(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        currentAmountDeposited(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalAmountDeposited(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalAmountWithdrawn(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        sharesBasisPoints(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        activeForRewards(_lender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        migrateLender(_wallet: PromiseOrValue<string>, _currentAmountDeposited: PromiseOrValue<BigNumberish>, _totalAmountDeposited: PromiseOrValue<BigNumberish>, _totalAmountWithdrawn: PromiseOrValue<BigNumberish>, _sharesBasisPoints: PromiseOrValue<BigNumberish>, _activeForRewards: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        migrate(_from: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        proposeOwner(_address: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setLendingPoolPeripheralAddress(_address: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        deposit(_lender: PromiseOrValue<string>, _payer: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdraw(_lender: PromiseOrValue<string>, _wallet: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        sendFunds(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        receiveFunds(_borrower: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _rewardsAmount: PromiseOrValue<BigNumberish>, _investedAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferProtocolFees(_borrower: PromiseOrValue<string>, _protocolWallet: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        proposedOwner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lendingPoolPeripheral(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        erc20TokenContract(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        funds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        knownLenders(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        activeLenders(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        fundsAvailable(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        fundsInvested(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalFundsInvested(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalRewards(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSharesBasisPoints(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        migrationDone(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
