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 BntPoolInterface extends utils.Interface {
    functions: {
        'DEFAULT_ADMIN_ROLE()': FunctionFragment;
        'availableFunding(address)': FunctionFragment;
        'burn(address,uint256)': FunctionFragment;
        'burnFromVault(uint256)': FunctionFragment;
        'currentPoolFunding(address)': FunctionFragment;
        'depositFor(bytes32,address,uint256,bool,uint256)': FunctionFragment;
        'getRoleAdmin(bytes32)': FunctionFragment;
        'getRoleMember(bytes32,uint256)': FunctionFragment;
        'getRoleMemberCount(bytes32)': FunctionFragment;
        'grantRole(bytes32,address)': FunctionFragment;
        'hasRole(bytes32,address)': FunctionFragment;
        'initialize()': FunctionFragment;
        'isPaused()': FunctionFragment;
        'isPayable()': FunctionFragment;
        'mint(address,uint256)': FunctionFragment;
        'onFeesCollected(address,uint256,bool)': FunctionFragment;
        'pause()': FunctionFragment;
        'paused()': FunctionFragment;
        'poolToken()': FunctionFragment;
        'poolTokenAmountToBurn(uint256)': FunctionFragment;
        'poolTokenToUnderlying(uint256)': FunctionFragment;
        'postUpgrade(bytes)': FunctionFragment;
        'renounceFunding(bytes32,address,uint256)': FunctionFragment;
        'renounceRole(bytes32,address)': FunctionFragment;
        'requestFunding(bytes32,address,uint256)': FunctionFragment;
        'revokeRole(bytes32,address)': FunctionFragment;
        'roleAdmin()': FunctionFragment;
        'roleAssetManager()': FunctionFragment;
        'roleBNTManager()': FunctionFragment;
        'roleBNTPoolTokenManager()': FunctionFragment;
        'roleFundingManager()': FunctionFragment;
        'roleVaultManager()': FunctionFragment;
        'stakedBalance()': FunctionFragment;
        'supportsInterface(bytes4)': FunctionFragment;
        'underlyingToPoolToken(uint256)': FunctionFragment;
        'unpause()': FunctionFragment;
        'version()': FunctionFragment;
        'withdraw(bytes32,address,uint256)': FunctionFragment;
        'withdrawFunds(address,address,uint256)': FunctionFragment;
        'withdrawalAmount(uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'DEFAULT_ADMIN_ROLE' | 'availableFunding' | 'burn' | 'burnFromVault' | 'currentPoolFunding' | 'depositFor' | 'getRoleAdmin' | 'getRoleMember' | 'getRoleMemberCount' | 'grantRole' | 'hasRole' | 'initialize' | 'isPaused' | 'isPayable' | 'mint' | 'onFeesCollected' | 'pause' | 'paused' | 'poolToken' | 'poolTokenAmountToBurn' | 'poolTokenToUnderlying' | 'postUpgrade' | 'renounceFunding' | 'renounceRole' | 'requestFunding' | 'revokeRole' | 'roleAdmin' | 'roleAssetManager' | 'roleBNTManager' | 'roleBNTPoolTokenManager' | 'roleFundingManager' | 'roleVaultManager' | 'stakedBalance' | 'supportsInterface' | 'underlyingToPoolToken' | 'unpause' | 'version' | 'withdraw' | 'withdrawFunds' | 'withdrawalAmount'): FunctionFragment;
    encodeFunctionData(functionFragment: 'DEFAULT_ADMIN_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'availableFunding', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'burn', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'burnFromVault', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'currentPoolFunding', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'depositFor', values: [
        PromiseOrValue<BytesLike>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<boolean>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'getRoleAdmin', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'getRoleMember', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getRoleMemberCount', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'grantRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'hasRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'initialize', values?: undefined): string;
    encodeFunctionData(functionFragment: 'isPaused', values?: undefined): string;
    encodeFunctionData(functionFragment: 'isPayable', values?: undefined): string;
    encodeFunctionData(functionFragment: 'mint', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'onFeesCollected', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'pause', values?: undefined): string;
    encodeFunctionData(functionFragment: 'paused', values?: undefined): string;
    encodeFunctionData(functionFragment: 'poolToken', values?: undefined): string;
    encodeFunctionData(functionFragment: 'poolTokenAmountToBurn', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'poolTokenToUnderlying', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'postUpgrade', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'renounceFunding', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'renounceRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'requestFunding', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'revokeRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'roleAdmin', values?: undefined): string;
    encodeFunctionData(functionFragment: 'roleAssetManager', values?: undefined): string;
    encodeFunctionData(functionFragment: 'roleBNTManager', values?: undefined): string;
    encodeFunctionData(functionFragment: 'roleBNTPoolTokenManager', values?: undefined): string;
    encodeFunctionData(functionFragment: 'roleFundingManager', values?: undefined): string;
    encodeFunctionData(functionFragment: 'roleVaultManager', values?: undefined): string;
    encodeFunctionData(functionFragment: 'stakedBalance', values?: undefined): string;
    encodeFunctionData(functionFragment: 'supportsInterface', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'underlyingToPoolToken', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'unpause', values?: undefined): string;
    encodeFunctionData(functionFragment: 'version', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdraw', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'withdrawFunds', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'withdrawalAmount', values: [PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'DEFAULT_ADMIN_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'availableFunding', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'burn', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'burnFromVault', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'currentPoolFunding', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositFor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRoleAdmin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRoleMember', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRoleMemberCount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'grantRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hasRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isPaused', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isPayable', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mint', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'onFeesCollected', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pause', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'poolToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'poolTokenAmountToBurn', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'poolTokenToUnderlying', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'postUpgrade', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceFunding', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'requestFunding', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'revokeRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'roleAdmin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'roleAssetManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'roleBNTManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'roleBNTPoolTokenManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'roleFundingManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'roleVaultManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakedBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'supportsInterface', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'underlyingToPoolToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unpause', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'version', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawFunds', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawalAmount', data: BytesLike): Result;
    events: {
        'FundingRenounced(bytes32,address,uint256,uint256)': EventFragment;
        'FundingRequested(bytes32,address,uint256,uint256)': EventFragment;
        'FundsBurned(address,address,uint256)': EventFragment;
        'FundsWithdrawn(address,address,address,uint256)': EventFragment;
        'Paused(address)': EventFragment;
        'RoleAdminChanged(bytes32,bytes32,bytes32)': EventFragment;
        'RoleGranted(bytes32,address,address)': EventFragment;
        'RoleRevoked(bytes32,address,address)': EventFragment;
        'TokensDeposited(bytes32,address,uint256,uint256,uint256)': EventFragment;
        'TokensWithdrawn(bytes32,address,uint256,uint256,uint256,uint256)': EventFragment;
        'TotalLiquidityUpdated(bytes32,uint256,uint256,uint256)': EventFragment;
        'Unpaused(address)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'FundingRenounced'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FundingRequested'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FundsBurned'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FundsWithdrawn'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Paused'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleAdminChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleGranted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleRevoked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TokensDeposited'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TokensWithdrawn'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TotalLiquidityUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Unpaused'): EventFragment;
}
export interface FundingRenouncedEventObject {
    contextId: string;
    pool: string;
    bntAmount: BigNumber;
    poolTokenAmount: BigNumber;
}
export declare type FundingRenouncedEvent = TypedEvent<[string, string, BigNumber, BigNumber], FundingRenouncedEventObject>;
export declare type FundingRenouncedEventFilter = TypedEventFilter<FundingRenouncedEvent>;
export interface FundingRequestedEventObject {
    contextId: string;
    pool: string;
    bntAmount: BigNumber;
    poolTokenAmount: BigNumber;
}
export declare type FundingRequestedEvent = TypedEvent<[string, string, BigNumber, BigNumber], FundingRequestedEventObject>;
export declare type FundingRequestedEventFilter = TypedEventFilter<FundingRequestedEvent>;
export interface FundsBurnedEventObject {
    token: string;
    caller: string;
    amount: BigNumber;
}
export declare type FundsBurnedEvent = TypedEvent<[string, string, BigNumber], FundsBurnedEventObject>;
export declare type FundsBurnedEventFilter = TypedEventFilter<FundsBurnedEvent>;
export interface FundsWithdrawnEventObject {
    token: string;
    caller: string;
    target: string;
    amount: BigNumber;
}
export declare type FundsWithdrawnEvent = TypedEvent<[string, string, string, BigNumber], FundsWithdrawnEventObject>;
export declare type FundsWithdrawnEventFilter = TypedEventFilter<FundsWithdrawnEvent>;
export interface PausedEventObject {
    account: string;
}
export declare type PausedEvent = TypedEvent<[string], PausedEventObject>;
export declare type PausedEventFilter = TypedEventFilter<PausedEvent>;
export interface RoleAdminChangedEventObject {
    role: string;
    previousAdminRole: string;
    newAdminRole: string;
}
export declare type RoleAdminChangedEvent = TypedEvent<[string, string, string], RoleAdminChangedEventObject>;
export declare type RoleAdminChangedEventFilter = TypedEventFilter<RoleAdminChangedEvent>;
export interface RoleGrantedEventObject {
    role: string;
    account: string;
    sender: string;
}
export declare type RoleGrantedEvent = TypedEvent<[string, string, string], RoleGrantedEventObject>;
export declare type RoleGrantedEventFilter = TypedEventFilter<RoleGrantedEvent>;
export interface RoleRevokedEventObject {
    role: string;
    account: string;
    sender: string;
}
export declare type RoleRevokedEvent = TypedEvent<[string, string, string], RoleRevokedEventObject>;
export declare type RoleRevokedEventFilter = TypedEventFilter<RoleRevokedEvent>;
export interface TokensDepositedEventObject {
    contextId: string;
    provider: string;
    bntAmount: BigNumber;
    poolTokenAmount: BigNumber;
    vbntAmount: BigNumber;
}
export declare type TokensDepositedEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber
], TokensDepositedEventObject>;
export declare type TokensDepositedEventFilter = TypedEventFilter<TokensDepositedEvent>;
export interface TokensWithdrawnEventObject {
    contextId: string;
    provider: string;
    bntAmount: BigNumber;
    poolTokenAmount: BigNumber;
    vbntAmount: BigNumber;
    withdrawalFeeAmount: BigNumber;
}
export declare type TokensWithdrawnEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], TokensWithdrawnEventObject>;
export declare type TokensWithdrawnEventFilter = TypedEventFilter<TokensWithdrawnEvent>;
export interface TotalLiquidityUpdatedEventObject {
    contextId: string;
    liquidity: BigNumber;
    stakedBalance: BigNumber;
    poolTokenSupply: BigNumber;
}
export declare type TotalLiquidityUpdatedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber
], TotalLiquidityUpdatedEventObject>;
export declare type TotalLiquidityUpdatedEventFilter = TypedEventFilter<TotalLiquidityUpdatedEvent>;
export interface UnpausedEventObject {
    account: string;
}
export declare type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>;
export declare type UnpausedEventFilter = TypedEventFilter<UnpausedEvent>;
export interface BntPool extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: BntPoolInterface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<[string]>;
        availableFunding(pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        burn(token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        burnFromVault(bntAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        currentPoolFunding(pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        depositFor(contextId: PromiseOrValue<BytesLike>, provider: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, isMigrating: PromiseOrValue<boolean>, originalVBNTAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        getRoleMemberCount(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber]>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        initialize(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isPaused(overrides?: CallOverrides): Promise<[boolean]>;
        isPayable(overrides?: CallOverrides): Promise<[boolean]>;
        mint(recipient: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        onFeesCollected(pool: PromiseOrValue<string>, feeAmount: PromiseOrValue<BigNumberish>, isTradeFee: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        poolToken(overrides?: CallOverrides): Promise<[string]>;
        poolTokenAmountToBurn(bntAmountToDistribute: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        poolTokenToUnderlying(poolTokenAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        postUpgrade(data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        renounceFunding(contextId: PromiseOrValue<BytesLike>, pool: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        requestFunding(contextId: PromiseOrValue<BytesLike>, pool: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        roleAdmin(overrides?: CallOverrides): Promise<[string]>;
        roleAssetManager(overrides?: CallOverrides): Promise<[string]>;
        roleBNTManager(overrides?: CallOverrides): Promise<[string]>;
        roleBNTPoolTokenManager(overrides?: CallOverrides): Promise<[string]>;
        roleFundingManager(overrides?: CallOverrides): Promise<[string]>;
        roleVaultManager(overrides?: CallOverrides): Promise<[string]>;
        stakedBalance(overrides?: CallOverrides): Promise<[BigNumber]>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        underlyingToPoolToken(bntAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        version(overrides?: CallOverrides): Promise<[number]>;
        withdraw(contextId: PromiseOrValue<BytesLike>, provider: PromiseOrValue<string>, poolTokenAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawFunds(token: PromiseOrValue<string>, target: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawalAmount(poolTokenAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
    };
    DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
    availableFunding(pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    burn(token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    burnFromVault(bntAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    currentPoolFunding(pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    depositFor(contextId: PromiseOrValue<BytesLike>, provider: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, isMigrating: PromiseOrValue<boolean>, originalVBNTAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    getRoleMemberCount(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
    grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    initialize(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isPaused(overrides?: CallOverrides): Promise<boolean>;
    isPayable(overrides?: CallOverrides): Promise<boolean>;
    mint(recipient: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    onFeesCollected(pool: PromiseOrValue<string>, feeAmount: PromiseOrValue<BigNumberish>, isTradeFee: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    pause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    poolToken(overrides?: CallOverrides): Promise<string>;
    poolTokenAmountToBurn(bntAmountToDistribute: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    poolTokenToUnderlying(poolTokenAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    postUpgrade(data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    renounceFunding(contextId: PromiseOrValue<BytesLike>, pool: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    requestFunding(contextId: PromiseOrValue<BytesLike>, pool: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    roleAdmin(overrides?: CallOverrides): Promise<string>;
    roleAssetManager(overrides?: CallOverrides): Promise<string>;
    roleBNTManager(overrides?: CallOverrides): Promise<string>;
    roleBNTPoolTokenManager(overrides?: CallOverrides): Promise<string>;
    roleFundingManager(overrides?: CallOverrides): Promise<string>;
    roleVaultManager(overrides?: CallOverrides): Promise<string>;
    stakedBalance(overrides?: CallOverrides): Promise<BigNumber>;
    supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    underlyingToPoolToken(bntAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    unpause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    version(overrides?: CallOverrides): Promise<number>;
    withdraw(contextId: PromiseOrValue<BytesLike>, provider: PromiseOrValue<string>, poolTokenAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawFunds(token: PromiseOrValue<string>, target: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawalAmount(poolTokenAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    callStatic: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
        availableFunding(pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        burn(token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        burnFromVault(bntAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        currentPoolFunding(pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        depositFor(contextId: PromiseOrValue<BytesLike>, provider: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, isMigrating: PromiseOrValue<boolean>, originalVBNTAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        getRoleMemberCount(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        initialize(overrides?: CallOverrides): Promise<void>;
        isPaused(overrides?: CallOverrides): Promise<boolean>;
        isPayable(overrides?: CallOverrides): Promise<boolean>;
        mint(recipient: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        onFeesCollected(pool: PromiseOrValue<string>, feeAmount: PromiseOrValue<BigNumberish>, isTradeFee: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        pause(overrides?: CallOverrides): Promise<void>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        poolToken(overrides?: CallOverrides): Promise<string>;
        poolTokenAmountToBurn(bntAmountToDistribute: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        poolTokenToUnderlying(poolTokenAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        postUpgrade(data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        renounceFunding(contextId: PromiseOrValue<BytesLike>, pool: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        requestFunding(contextId: PromiseOrValue<BytesLike>, pool: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        roleAdmin(overrides?: CallOverrides): Promise<string>;
        roleAssetManager(overrides?: CallOverrides): Promise<string>;
        roleBNTManager(overrides?: CallOverrides): Promise<string>;
        roleBNTPoolTokenManager(overrides?: CallOverrides): Promise<string>;
        roleFundingManager(overrides?: CallOverrides): Promise<string>;
        roleVaultManager(overrides?: CallOverrides): Promise<string>;
        stakedBalance(overrides?: CallOverrides): Promise<BigNumber>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        underlyingToPoolToken(bntAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        unpause(overrides?: CallOverrides): Promise<void>;
        version(overrides?: CallOverrides): Promise<number>;
        withdraw(contextId: PromiseOrValue<BytesLike>, provider: PromiseOrValue<string>, poolTokenAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        withdrawFunds(token: PromiseOrValue<string>, target: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        withdrawalAmount(poolTokenAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    filters: {
        'FundingRenounced(bytes32,address,uint256,uint256)'(contextId?: PromiseOrValue<BytesLike> | null, pool?: PromiseOrValue<string> | null, bntAmount?: null, poolTokenAmount?: null): FundingRenouncedEventFilter;
        FundingRenounced(contextId?: PromiseOrValue<BytesLike> | null, pool?: PromiseOrValue<string> | null, bntAmount?: null, poolTokenAmount?: null): FundingRenouncedEventFilter;
        'FundingRequested(bytes32,address,uint256,uint256)'(contextId?: PromiseOrValue<BytesLike> | null, pool?: PromiseOrValue<string> | null, bntAmount?: null, poolTokenAmount?: null): FundingRequestedEventFilter;
        FundingRequested(contextId?: PromiseOrValue<BytesLike> | null, pool?: PromiseOrValue<string> | null, bntAmount?: null, poolTokenAmount?: null): FundingRequestedEventFilter;
        'FundsBurned(address,address,uint256)'(token?: PromiseOrValue<string> | null, caller?: PromiseOrValue<string> | null, amount?: null): FundsBurnedEventFilter;
        FundsBurned(token?: PromiseOrValue<string> | null, caller?: PromiseOrValue<string> | null, amount?: null): FundsBurnedEventFilter;
        'FundsWithdrawn(address,address,address,uint256)'(token?: PromiseOrValue<string> | null, caller?: PromiseOrValue<string> | null, target?: PromiseOrValue<string> | null, amount?: null): FundsWithdrawnEventFilter;
        FundsWithdrawn(token?: PromiseOrValue<string> | null, caller?: PromiseOrValue<string> | null, target?: PromiseOrValue<string> | null, amount?: null): FundsWithdrawnEventFilter;
        'Paused(address)'(account?: null): PausedEventFilter;
        Paused(account?: null): PausedEventFilter;
        'RoleAdminChanged(bytes32,bytes32,bytes32)'(role?: PromiseOrValue<BytesLike> | null, previousAdminRole?: PromiseOrValue<BytesLike> | null, newAdminRole?: PromiseOrValue<BytesLike> | null): RoleAdminChangedEventFilter;
        RoleAdminChanged(role?: PromiseOrValue<BytesLike> | null, previousAdminRole?: PromiseOrValue<BytesLike> | null, newAdminRole?: PromiseOrValue<BytesLike> | null): RoleAdminChangedEventFilter;
        'RoleGranted(bytes32,address,address)'(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleGrantedEventFilter;
        RoleGranted(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleGrantedEventFilter;
        'RoleRevoked(bytes32,address,address)'(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleRevokedEventFilter;
        RoleRevoked(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleRevokedEventFilter;
        'TokensDeposited(bytes32,address,uint256,uint256,uint256)'(contextId?: PromiseOrValue<BytesLike> | null, provider?: PromiseOrValue<string> | null, bntAmount?: null, poolTokenAmount?: null, vbntAmount?: null): TokensDepositedEventFilter;
        TokensDeposited(contextId?: PromiseOrValue<BytesLike> | null, provider?: PromiseOrValue<string> | null, bntAmount?: null, poolTokenAmount?: null, vbntAmount?: null): TokensDepositedEventFilter;
        'TokensWithdrawn(bytes32,address,uint256,uint256,uint256,uint256)'(contextId?: PromiseOrValue<BytesLike> | null, provider?: PromiseOrValue<string> | null, bntAmount?: null, poolTokenAmount?: null, vbntAmount?: null, withdrawalFeeAmount?: null): TokensWithdrawnEventFilter;
        TokensWithdrawn(contextId?: PromiseOrValue<BytesLike> | null, provider?: PromiseOrValue<string> | null, bntAmount?: null, poolTokenAmount?: null, vbntAmount?: null, withdrawalFeeAmount?: null): TokensWithdrawnEventFilter;
        'TotalLiquidityUpdated(bytes32,uint256,uint256,uint256)'(contextId?: PromiseOrValue<BytesLike> | null, liquidity?: null, stakedBalance?: null, poolTokenSupply?: null): TotalLiquidityUpdatedEventFilter;
        TotalLiquidityUpdated(contextId?: PromiseOrValue<BytesLike> | null, liquidity?: null, stakedBalance?: null, poolTokenSupply?: null): TotalLiquidityUpdatedEventFilter;
        'Unpaused(address)'(account?: null): UnpausedEventFilter;
        Unpaused(account?: null): UnpausedEventFilter;
    };
    estimateGas: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        availableFunding(pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        burn(token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        burnFromVault(bntAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        currentPoolFunding(pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        depositFor(contextId: PromiseOrValue<BytesLike>, provider: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, isMigrating: PromiseOrValue<boolean>, originalVBNTAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getRoleMemberCount(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        initialize(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isPaused(overrides?: CallOverrides): Promise<BigNumber>;
        isPayable(overrides?: CallOverrides): Promise<BigNumber>;
        mint(recipient: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        onFeesCollected(pool: PromiseOrValue<string>, feeAmount: PromiseOrValue<BigNumberish>, isTradeFee: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        poolToken(overrides?: CallOverrides): Promise<BigNumber>;
        poolTokenAmountToBurn(bntAmountToDistribute: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        poolTokenToUnderlying(poolTokenAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        postUpgrade(data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        renounceFunding(contextId: PromiseOrValue<BytesLike>, pool: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        requestFunding(contextId: PromiseOrValue<BytesLike>, pool: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        roleAdmin(overrides?: CallOverrides): Promise<BigNumber>;
        roleAssetManager(overrides?: CallOverrides): Promise<BigNumber>;
        roleBNTManager(overrides?: CallOverrides): Promise<BigNumber>;
        roleBNTPoolTokenManager(overrides?: CallOverrides): Promise<BigNumber>;
        roleFundingManager(overrides?: CallOverrides): Promise<BigNumber>;
        roleVaultManager(overrides?: CallOverrides): Promise<BigNumber>;
        stakedBalance(overrides?: CallOverrides): Promise<BigNumber>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        underlyingToPoolToken(bntAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        version(overrides?: CallOverrides): Promise<BigNumber>;
        withdraw(contextId: PromiseOrValue<BytesLike>, provider: PromiseOrValue<string>, poolTokenAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawFunds(token: PromiseOrValue<string>, target: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawalAmount(poolTokenAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        availableFunding(pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        burn(token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        burnFromVault(bntAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        currentPoolFunding(pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        depositFor(contextId: PromiseOrValue<BytesLike>, provider: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, isMigrating: PromiseOrValue<boolean>, originalVBNTAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleMemberCount(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initialize(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isPaused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isPayable(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        mint(recipient: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        onFeesCollected(pool: PromiseOrValue<string>, feeAmount: PromiseOrValue<BigNumberish>, isTradeFee: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolTokenAmountToBurn(bntAmountToDistribute: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolTokenToUnderlying(poolTokenAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        postUpgrade(data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        renounceFunding(contextId: PromiseOrValue<BytesLike>, pool: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        requestFunding(contextId: PromiseOrValue<BytesLike>, pool: PromiseOrValue<string>, bntAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        roleAdmin(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        roleAssetManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        roleBNTManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        roleBNTPoolTokenManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        roleFundingManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        roleVaultManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        stakedBalance(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        underlyingToPoolToken(bntAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        version(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdraw(contextId: PromiseOrValue<BytesLike>, provider: PromiseOrValue<string>, poolTokenAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawFunds(token: PromiseOrValue<string>, target: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawalAmount(poolTokenAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
