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 MuxRewardRouterInterface extends utils.Interface {
    functions: {
        'averageStakePeriod()': FunctionFragment;
        'batchCompoundForAccounts(address[])': FunctionFragment;
        'batchStakeMuxForAccount(address[],uint256[],uint256[])': FunctionFragment;
        'claimAll()': FunctionFragment;
        'claimFromMlp()': FunctionFragment;
        'claimFromVe()': FunctionFragment;
        'claimVestedTokenFromMlp(address)': FunctionFragment;
        'claimVestedTokenFromVe(address)': FunctionFragment;
        'claimableRewards(address)': FunctionFragment;
        'claimableVestedTokenFromMlp(address)': FunctionFragment;
        'claimableVestedTokenFromVe(address)': FunctionFragment;
        'claimedVestedTokenFromMlp(address)': FunctionFragment;
        'claimedVestedTokenFromVe(address)': FunctionFragment;
        'compound()': FunctionFragment;
        'compoundForAccount(address)': FunctionFragment;
        'depositToMlpVester(uint256)': FunctionFragment;
        'depositToVeVester(uint256)': FunctionFragment;
        'feeRewardRate()': FunctionFragment;
        'increaseStakeUnlockTime(uint256)': FunctionFragment;
        'initialize(address[5],address[4],address[2],address[2])': FunctionFragment;
        'maxVestableTokenFromMlp(address)': FunctionFragment;
        'maxVestableTokenFromVe(address)': FunctionFragment;
        'mcb()': FunctionFragment;
        'mlp()': FunctionFragment;
        'mlpDistributor()': FunctionFragment;
        'mlpFeeTracker()': FunctionFragment;
        'mlpLockAmount(address,uint256)': FunctionFragment;
        'mlpMuxTracker()': FunctionFragment;
        'mlpVester()': FunctionFragment;
        'mux()': FunctionFragment;
        'muxDistributor()': FunctionFragment;
        'muxRewardRate()': FunctionFragment;
        'muxVester()': FunctionFragment;
        'owner()': FunctionFragment;
        'poolOwnedRate()': FunctionFragment;
        'protocolLiquidityOwner()': FunctionFragment;
        'renounceOwnership()': FunctionFragment;
        'reservedMlpAmount(address)': FunctionFragment;
        'setProtocolLiquidityOwner(address)': FunctionFragment;
        'setTimelock(address)': FunctionFragment;
        'setVault(address)': FunctionFragment;
        'stakeMcb(uint256,uint256)': FunctionFragment;
        'stakeMcbForAccount(address,uint256)': FunctionFragment;
        'stakeMlp(uint256)': FunctionFragment;
        'stakeMux(uint256,uint256)': FunctionFragment;
        'stakedMlpAmount(address)': FunctionFragment;
        'timelock()': FunctionFragment;
        'totalVestedTokenFromMlp(address)': FunctionFragment;
        'totalVestedTokenFromVe(address)': FunctionFragment;
        'transferOwnership(address)': FunctionFragment;
        'unlockTime(address)': FunctionFragment;
        'unstakeMcbAndMux()': FunctionFragment;
        'unstakeMlp(uint256)': FunctionFragment;
        'vault()': FunctionFragment;
        'veFeeTracker()': FunctionFragment;
        'veMuxTracker()': FunctionFragment;
        'votingEscrow()': FunctionFragment;
        'votingEscrowedAmounts(address)': FunctionFragment;
        'votingEscrowedRate()': FunctionFragment;
        'weth()': FunctionFragment;
        'withdrawFromMlpVester()': FunctionFragment;
        'withdrawFromVeVester()': FunctionFragment;
        'withdrawToken(address,address,uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'averageStakePeriod' | 'batchCompoundForAccounts' | 'batchStakeMuxForAccount' | 'claimAll' | 'claimFromMlp' | 'claimFromVe' | 'claimVestedTokenFromMlp' | 'claimVestedTokenFromVe' | 'claimableRewards' | 'claimableVestedTokenFromMlp' | 'claimableVestedTokenFromVe' | 'claimedVestedTokenFromMlp' | 'claimedVestedTokenFromVe' | 'compound' | 'compoundForAccount' | 'depositToMlpVester' | 'depositToVeVester' | 'feeRewardRate' | 'increaseStakeUnlockTime' | 'initialize' | 'maxVestableTokenFromMlp' | 'maxVestableTokenFromVe' | 'mcb' | 'mlp' | 'mlpDistributor' | 'mlpFeeTracker' | 'mlpLockAmount' | 'mlpMuxTracker' | 'mlpVester' | 'mux' | 'muxDistributor' | 'muxRewardRate' | 'muxVester' | 'owner' | 'poolOwnedRate' | 'protocolLiquidityOwner' | 'renounceOwnership' | 'reservedMlpAmount' | 'setProtocolLiquidityOwner' | 'setTimelock' | 'setVault' | 'stakeMcb' | 'stakeMcbForAccount' | 'stakeMlp' | 'stakeMux' | 'stakedMlpAmount' | 'timelock' | 'totalVestedTokenFromMlp' | 'totalVestedTokenFromVe' | 'transferOwnership' | 'unlockTime' | 'unstakeMcbAndMux' | 'unstakeMlp' | 'vault' | 'veFeeTracker' | 'veMuxTracker' | 'votingEscrow' | 'votingEscrowedAmounts' | 'votingEscrowedRate' | 'weth' | 'withdrawFromMlpVester' | 'withdrawFromVeVester' | 'withdrawToken'): FunctionFragment;
    encodeFunctionData(functionFragment: 'averageStakePeriod', values?: undefined): string;
    encodeFunctionData(functionFragment: 'batchCompoundForAccounts', values: [PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'batchStakeMuxForAccount', values: [PromiseOrValue<string>[], PromiseOrValue<BigNumberish>[], PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: 'claimAll', values?: undefined): string;
    encodeFunctionData(functionFragment: 'claimFromMlp', values?: undefined): string;
    encodeFunctionData(functionFragment: 'claimFromVe', values?: undefined): string;
    encodeFunctionData(functionFragment: 'claimVestedTokenFromMlp', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claimVestedTokenFromVe', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claimableRewards', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claimableVestedTokenFromMlp', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claimableVestedTokenFromVe', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claimedVestedTokenFromMlp', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claimedVestedTokenFromVe', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'compound', values?: undefined): string;
    encodeFunctionData(functionFragment: 'compoundForAccount', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'depositToMlpVester', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'depositToVeVester', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'feeRewardRate', values?: undefined): string;
    encodeFunctionData(functionFragment: 'increaseStakeUnlockTime', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'initialize', values: [
        [
            PromiseOrValue<string>,
            PromiseOrValue<string>,
            PromiseOrValue<string>,
            PromiseOrValue<string>,
            PromiseOrValue<string>
        ],
        [
            PromiseOrValue<string>,
            PromiseOrValue<string>,
            PromiseOrValue<string>,
            PromiseOrValue<string>
        ],
        [
            PromiseOrValue<string>,
            PromiseOrValue<string>
        ],
        [
            PromiseOrValue<string>,
            PromiseOrValue<string>
        ]
    ]): string;
    encodeFunctionData(functionFragment: 'maxVestableTokenFromMlp', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'maxVestableTokenFromVe', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'mcb', values?: undefined): string;
    encodeFunctionData(functionFragment: 'mlp', values?: undefined): string;
    encodeFunctionData(functionFragment: 'mlpDistributor', values?: undefined): string;
    encodeFunctionData(functionFragment: 'mlpFeeTracker', values?: undefined): string;
    encodeFunctionData(functionFragment: 'mlpLockAmount', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'mlpMuxTracker', values?: undefined): string;
    encodeFunctionData(functionFragment: 'mlpVester', values?: undefined): string;
    encodeFunctionData(functionFragment: 'mux', values?: undefined): string;
    encodeFunctionData(functionFragment: 'muxDistributor', values?: undefined): string;
    encodeFunctionData(functionFragment: 'muxRewardRate', values?: undefined): string;
    encodeFunctionData(functionFragment: 'muxVester', values?: undefined): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'poolOwnedRate', values?: undefined): string;
    encodeFunctionData(functionFragment: 'protocolLiquidityOwner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'renounceOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'reservedMlpAmount', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setProtocolLiquidityOwner', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setTimelock', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setVault', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'stakeMcb', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'stakeMcbForAccount', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'stakeMlp', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'stakeMux', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'stakedMlpAmount', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'timelock', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalVestedTokenFromMlp', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'totalVestedTokenFromVe', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'transferOwnership', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'unlockTime', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'unstakeMcbAndMux', values?: undefined): string;
    encodeFunctionData(functionFragment: 'unstakeMlp', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'vault', values?: undefined): string;
    encodeFunctionData(functionFragment: 'veFeeTracker', values?: undefined): string;
    encodeFunctionData(functionFragment: 'veMuxTracker', values?: undefined): string;
    encodeFunctionData(functionFragment: 'votingEscrow', values?: undefined): string;
    encodeFunctionData(functionFragment: 'votingEscrowedAmounts', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'votingEscrowedRate', values?: undefined): string;
    encodeFunctionData(functionFragment: 'weth', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdrawFromMlpVester', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdrawFromVeVester', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdrawToken', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'averageStakePeriod', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'batchCompoundForAccounts', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'batchStakeMuxForAccount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimAll', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimFromMlp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimFromVe', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimVestedTokenFromMlp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimVestedTokenFromVe', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimableRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimableVestedTokenFromMlp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimableVestedTokenFromVe', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimedVestedTokenFromMlp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimedVestedTokenFromVe', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'compound', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'compoundForAccount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositToMlpVester', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositToVeVester', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'feeRewardRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'increaseStakeUnlockTime', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxVestableTokenFromMlp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxVestableTokenFromVe', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mcb', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mlp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mlpDistributor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mlpFeeTracker', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mlpLockAmount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mlpMuxTracker', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mlpVester', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mux', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'muxDistributor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'muxRewardRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'muxVester', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'poolOwnedRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'protocolLiquidityOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'reservedMlpAmount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setProtocolLiquidityOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setTimelock', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setVault', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakeMcb', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakeMcbForAccount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakeMlp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakeMux', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakedMlpAmount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'timelock', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalVestedTokenFromMlp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalVestedTokenFromVe', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unlockTime', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unstakeMcbAndMux', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unstakeMlp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'vault', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'veFeeTracker', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'veMuxTracker', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'votingEscrow', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'votingEscrowedAmounts', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'votingEscrowedRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'weth', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawFromMlpVester', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawFromVeVester', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawToken', data: BytesLike): Result;
    events: {
        'OwnershipTransferred(address,address)': EventFragment;
        'SetProtocolLiquidityOwner(address,address)': EventFragment;
        'SetTimelock(address,address)': EventFragment;
        'SetVault(address,address)': EventFragment;
        'StakeMlp(address,uint256)': EventFragment;
        'StakeMux(address,address,uint256,uint256)': EventFragment;
        'UnstakeMlp(address,uint256)': EventFragment;
        'UnstakeMux(address,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SetProtocolLiquidityOwner'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SetTimelock'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SetVault'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'StakeMlp'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'StakeMux'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UnstakeMlp'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UnstakeMux'): EventFragment;
}
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export declare type OwnershipTransferredEvent = TypedEvent<[string, string], OwnershipTransferredEventObject>;
export declare type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface SetProtocolLiquidityOwnerEventObject {
    previousOwner: string;
    newOwner: string;
}
export declare type SetProtocolLiquidityOwnerEvent = TypedEvent<[string, string], SetProtocolLiquidityOwnerEventObject>;
export declare type SetProtocolLiquidityOwnerEventFilter = TypedEventFilter<SetProtocolLiquidityOwnerEvent>;
export interface SetTimelockEventObject {
    previousTimelock: string;
    newTimelock: string;
}
export declare type SetTimelockEvent = TypedEvent<[string, string], SetTimelockEventObject>;
export declare type SetTimelockEventFilter = TypedEventFilter<SetTimelockEvent>;
export interface SetVaultEventObject {
    previousVault: string;
    newVault: string;
}
export declare type SetVaultEvent = TypedEvent<[string, string], SetVaultEventObject>;
export declare type SetVaultEventFilter = TypedEventFilter<SetVaultEvent>;
export interface StakeMlpEventObject {
    account: string;
    amount: BigNumber;
}
export declare type StakeMlpEvent = TypedEvent<[string, BigNumber], StakeMlpEventObject>;
export declare type StakeMlpEventFilter = TypedEventFilter<StakeMlpEvent>;
export interface StakeMuxEventObject {
    account: string;
    token: string;
    amount: BigNumber;
    unlockTime: BigNumber;
}
export declare type StakeMuxEvent = TypedEvent<[string, string, BigNumber, BigNumber], StakeMuxEventObject>;
export declare type StakeMuxEventFilter = TypedEventFilter<StakeMuxEvent>;
export interface UnstakeMlpEventObject {
    account: string;
    amount: BigNumber;
}
export declare type UnstakeMlpEvent = TypedEvent<[string, BigNumber], UnstakeMlpEventObject>;
export declare type UnstakeMlpEventFilter = TypedEventFilter<UnstakeMlpEvent>;
export interface UnstakeMuxEventObject {
    account: string;
    amount: BigNumber;
}
export declare type UnstakeMuxEvent = TypedEvent<[string, BigNumber], UnstakeMuxEventObject>;
export declare type UnstakeMuxEventFilter = TypedEventFilter<UnstakeMuxEvent>;
export interface MuxRewardRouter extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: MuxRewardRouterInterface;
    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: {
        averageStakePeriod(overrides?: CallOverrides): Promise<[BigNumber]>;
        batchCompoundForAccounts(_accounts: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        batchStakeMuxForAccount(_accounts: PromiseOrValue<string>[], _amounts: PromiseOrValue<BigNumberish>[], _unlockTime: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimAll(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimFromMlp(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimFromVe(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimableRewards(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimableVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        claimableVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        claimedVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        claimedVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        compound(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        compoundForAccount(_account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        depositToMlpVester(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        depositToVeVester(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        feeRewardRate(overrides?: CallOverrides): Promise<[BigNumber]>;
        increaseStakeUnlockTime(lockPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        initialize(_tokens: [
            PromiseOrValue<string>,
            PromiseOrValue<string>,
            PromiseOrValue<string>,
            PromiseOrValue<string>,
            PromiseOrValue<string>
        ], _rewardTrackers: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>], _vesters: [PromiseOrValue<string>, PromiseOrValue<string>], _distributors: [PromiseOrValue<string>, PromiseOrValue<string>], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        maxVestableTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        maxVestableTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        mcb(overrides?: CallOverrides): Promise<[string]>;
        mlp(overrides?: CallOverrides): Promise<[string]>;
        mlpDistributor(overrides?: CallOverrides): Promise<[string]>;
        mlpFeeTracker(overrides?: CallOverrides): Promise<[string]>;
        mlpLockAmount(account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        mlpMuxTracker(overrides?: CallOverrides): Promise<[string]>;
        mlpVester(overrides?: CallOverrides): Promise<[string]>;
        mux(overrides?: CallOverrides): Promise<[string]>;
        muxDistributor(overrides?: CallOverrides): Promise<[string]>;
        muxRewardRate(overrides?: CallOverrides): Promise<[BigNumber]>;
        muxVester(overrides?: CallOverrides): Promise<[string]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        poolOwnedRate(overrides?: CallOverrides): Promise<[BigNumber]>;
        protocolLiquidityOwner(overrides?: CallOverrides): Promise<[string]>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        reservedMlpAmount(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        setProtocolLiquidityOwner(_protocolLiquidityOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setTimelock(_timelock: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setVault(_vault: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stakeMcb(_amount: PromiseOrValue<BigNumberish>, lockPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stakeMcbForAccount(_account: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stakeMlp(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stakeMux(_amount: PromiseOrValue<BigNumberish>, lockPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stakedMlpAmount(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        timelock(overrides?: CallOverrides): Promise<[string]>;
        totalVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unlockTime(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        unstakeMcbAndMux(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unstakeMlp(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        vault(overrides?: CallOverrides): Promise<[string]>;
        veFeeTracker(overrides?: CallOverrides): Promise<[string]>;
        veMuxTracker(overrides?: CallOverrides): Promise<[string]>;
        votingEscrow(overrides?: CallOverrides): Promise<[string]>;
        votingEscrowedAmounts(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        votingEscrowedRate(overrides?: CallOverrides): Promise<[BigNumber]>;
        weth(overrides?: CallOverrides): Promise<[string]>;
        withdrawFromMlpVester(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawFromVeVester(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawToken(_token: PromiseOrValue<string>, _account: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    averageStakePeriod(overrides?: CallOverrides): Promise<BigNumber>;
    batchCompoundForAccounts(_accounts: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    batchStakeMuxForAccount(_accounts: PromiseOrValue<string>[], _amounts: PromiseOrValue<BigNumberish>[], _unlockTime: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimAll(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimFromMlp(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimFromVe(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimableRewards(account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimableVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    claimableVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    claimedVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    claimedVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    compound(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    compoundForAccount(_account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    depositToMlpVester(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    depositToVeVester(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    feeRewardRate(overrides?: CallOverrides): Promise<BigNumber>;
    increaseStakeUnlockTime(lockPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    initialize(_tokens: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>
    ], _rewardTrackers: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>], _vesters: [PromiseOrValue<string>, PromiseOrValue<string>], _distributors: [PromiseOrValue<string>, PromiseOrValue<string>], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    maxVestableTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    maxVestableTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    mcb(overrides?: CallOverrides): Promise<string>;
    mlp(overrides?: CallOverrides): Promise<string>;
    mlpDistributor(overrides?: CallOverrides): Promise<string>;
    mlpFeeTracker(overrides?: CallOverrides): Promise<string>;
    mlpLockAmount(account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    mlpMuxTracker(overrides?: CallOverrides): Promise<string>;
    mlpVester(overrides?: CallOverrides): Promise<string>;
    mux(overrides?: CallOverrides): Promise<string>;
    muxDistributor(overrides?: CallOverrides): Promise<string>;
    muxRewardRate(overrides?: CallOverrides): Promise<BigNumber>;
    muxVester(overrides?: CallOverrides): Promise<string>;
    owner(overrides?: CallOverrides): Promise<string>;
    poolOwnedRate(overrides?: CallOverrides): Promise<BigNumber>;
    protocolLiquidityOwner(overrides?: CallOverrides): Promise<string>;
    renounceOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    reservedMlpAmount(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    setProtocolLiquidityOwner(_protocolLiquidityOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setTimelock(_timelock: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setVault(_vault: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stakeMcb(_amount: PromiseOrValue<BigNumberish>, lockPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stakeMcbForAccount(_account: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stakeMlp(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stakeMux(_amount: PromiseOrValue<BigNumberish>, lockPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stakedMlpAmount(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    timelock(overrides?: CallOverrides): Promise<string>;
    totalVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    totalVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unlockTime(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    unstakeMcbAndMux(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unstakeMlp(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    vault(overrides?: CallOverrides): Promise<string>;
    veFeeTracker(overrides?: CallOverrides): Promise<string>;
    veMuxTracker(overrides?: CallOverrides): Promise<string>;
    votingEscrow(overrides?: CallOverrides): Promise<string>;
    votingEscrowedAmounts(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
    votingEscrowedRate(overrides?: CallOverrides): Promise<BigNumber>;
    weth(overrides?: CallOverrides): Promise<string>;
    withdrawFromMlpVester(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawFromVeVester(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawToken(_token: PromiseOrValue<string>, _account: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        averageStakePeriod(overrides?: CallOverrides): Promise<BigNumber>;
        batchCompoundForAccounts(_accounts: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        batchStakeMuxForAccount(_accounts: PromiseOrValue<string>[], _amounts: PromiseOrValue<BigNumberish>[], _unlockTime: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<void>;
        claimAll(overrides?: CallOverrides): Promise<void>;
        claimFromMlp(overrides?: CallOverrides): Promise<void>;
        claimFromVe(overrides?: CallOverrides): Promise<void>;
        claimVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimableRewards(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            mlpFeeAmount: BigNumber;
            mlpMuxAmount: BigNumber;
            veFeeAmount: BigNumber;
            veMuxAmount: BigNumber;
            mcbAmount: BigNumber;
        }>;
        claimableVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimableVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimedVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimedVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        compound(overrides?: CallOverrides): Promise<void>;
        compoundForAccount(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        depositToMlpVester(amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        depositToVeVester(amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        feeRewardRate(overrides?: CallOverrides): Promise<BigNumber>;
        increaseStakeUnlockTime(lockPeriod: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        initialize(_tokens: [
            PromiseOrValue<string>,
            PromiseOrValue<string>,
            PromiseOrValue<string>,
            PromiseOrValue<string>,
            PromiseOrValue<string>
        ], _rewardTrackers: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>], _vesters: [PromiseOrValue<string>, PromiseOrValue<string>], _distributors: [PromiseOrValue<string>, PromiseOrValue<string>], overrides?: CallOverrides): Promise<void>;
        maxVestableTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxVestableTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        mcb(overrides?: CallOverrides): Promise<string>;
        mlp(overrides?: CallOverrides): Promise<string>;
        mlpDistributor(overrides?: CallOverrides): Promise<string>;
        mlpFeeTracker(overrides?: CallOverrides): Promise<string>;
        mlpLockAmount(account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        mlpMuxTracker(overrides?: CallOverrides): Promise<string>;
        mlpVester(overrides?: CallOverrides): Promise<string>;
        mux(overrides?: CallOverrides): Promise<string>;
        muxDistributor(overrides?: CallOverrides): Promise<string>;
        muxRewardRate(overrides?: CallOverrides): Promise<BigNumber>;
        muxVester(overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        poolOwnedRate(overrides?: CallOverrides): Promise<BigNumber>;
        protocolLiquidityOwner(overrides?: CallOverrides): Promise<string>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        reservedMlpAmount(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        setProtocolLiquidityOwner(_protocolLiquidityOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setTimelock(_timelock: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setVault(_vault: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        stakeMcb(_amount: PromiseOrValue<BigNumberish>, lockPeriod: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        stakeMcbForAccount(_account: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        stakeMlp(_amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        stakeMux(_amount: PromiseOrValue<BigNumberish>, lockPeriod: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        stakedMlpAmount(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        timelock(overrides?: CallOverrides): Promise<string>;
        totalVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        unlockTime(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        unstakeMcbAndMux(overrides?: CallOverrides): Promise<void>;
        unstakeMlp(_amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        vault(overrides?: CallOverrides): Promise<string>;
        veFeeTracker(overrides?: CallOverrides): Promise<string>;
        veMuxTracker(overrides?: CallOverrides): Promise<string>;
        votingEscrow(overrides?: CallOverrides): Promise<string>;
        votingEscrowedAmounts(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        votingEscrowedRate(overrides?: CallOverrides): Promise<BigNumber>;
        weth(overrides?: CallOverrides): Promise<string>;
        withdrawFromMlpVester(overrides?: CallOverrides): Promise<void>;
        withdrawFromVeVester(overrides?: CallOverrides): Promise<void>;
        withdrawToken(_token: PromiseOrValue<string>, _account: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        'OwnershipTransferred(address,address)'(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        'SetProtocolLiquidityOwner(address,address)'(previousOwner?: null, newOwner?: null): SetProtocolLiquidityOwnerEventFilter;
        SetProtocolLiquidityOwner(previousOwner?: null, newOwner?: null): SetProtocolLiquidityOwnerEventFilter;
        'SetTimelock(address,address)'(previousTimelock?: null, newTimelock?: null): SetTimelockEventFilter;
        SetTimelock(previousTimelock?: null, newTimelock?: null): SetTimelockEventFilter;
        'SetVault(address,address)'(previousVault?: null, newVault?: null): SetVaultEventFilter;
        SetVault(previousVault?: null, newVault?: null): SetVaultEventFilter;
        'StakeMlp(address,uint256)'(account?: null, amount?: null): StakeMlpEventFilter;
        StakeMlp(account?: null, amount?: null): StakeMlpEventFilter;
        'StakeMux(address,address,uint256,uint256)'(account?: null, token?: null, amount?: null, unlockTime?: null): StakeMuxEventFilter;
        StakeMux(account?: null, token?: null, amount?: null, unlockTime?: null): StakeMuxEventFilter;
        'UnstakeMlp(address,uint256)'(account?: null, amount?: null): UnstakeMlpEventFilter;
        UnstakeMlp(account?: null, amount?: null): UnstakeMlpEventFilter;
        'UnstakeMux(address,uint256)'(account?: null, amount?: null): UnstakeMuxEventFilter;
        UnstakeMux(account?: null, amount?: null): UnstakeMuxEventFilter;
    };
    estimateGas: {
        averageStakePeriod(overrides?: CallOverrides): Promise<BigNumber>;
        batchCompoundForAccounts(_accounts: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        batchStakeMuxForAccount(_accounts: PromiseOrValue<string>[], _amounts: PromiseOrValue<BigNumberish>[], _unlockTime: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimAll(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimFromMlp(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimFromVe(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimableRewards(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimableVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimableVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimedVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimedVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        compound(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        compoundForAccount(_account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        depositToMlpVester(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        depositToVeVester(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        feeRewardRate(overrides?: CallOverrides): Promise<BigNumber>;
        increaseStakeUnlockTime(lockPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        initialize(_tokens: [
            PromiseOrValue<string>,
            PromiseOrValue<string>,
            PromiseOrValue<string>,
            PromiseOrValue<string>,
            PromiseOrValue<string>
        ], _rewardTrackers: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>], _vesters: [PromiseOrValue<string>, PromiseOrValue<string>], _distributors: [PromiseOrValue<string>, PromiseOrValue<string>], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        maxVestableTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxVestableTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        mcb(overrides?: CallOverrides): Promise<BigNumber>;
        mlp(overrides?: CallOverrides): Promise<BigNumber>;
        mlpDistributor(overrides?: CallOverrides): Promise<BigNumber>;
        mlpFeeTracker(overrides?: CallOverrides): Promise<BigNumber>;
        mlpLockAmount(account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        mlpMuxTracker(overrides?: CallOverrides): Promise<BigNumber>;
        mlpVester(overrides?: CallOverrides): Promise<BigNumber>;
        mux(overrides?: CallOverrides): Promise<BigNumber>;
        muxDistributor(overrides?: CallOverrides): Promise<BigNumber>;
        muxRewardRate(overrides?: CallOverrides): Promise<BigNumber>;
        muxVester(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        poolOwnedRate(overrides?: CallOverrides): Promise<BigNumber>;
        protocolLiquidityOwner(overrides?: CallOverrides): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        reservedMlpAmount(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        setProtocolLiquidityOwner(_protocolLiquidityOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setTimelock(_timelock: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setVault(_vault: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stakeMcb(_amount: PromiseOrValue<BigNumberish>, lockPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stakeMcbForAccount(_account: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stakeMlp(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stakeMux(_amount: PromiseOrValue<BigNumberish>, lockPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stakedMlpAmount(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        timelock(overrides?: CallOverrides): Promise<BigNumber>;
        totalVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unlockTime(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        unstakeMcbAndMux(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unstakeMlp(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        vault(overrides?: CallOverrides): Promise<BigNumber>;
        veFeeTracker(overrides?: CallOverrides): Promise<BigNumber>;
        veMuxTracker(overrides?: CallOverrides): Promise<BigNumber>;
        votingEscrow(overrides?: CallOverrides): Promise<BigNumber>;
        votingEscrowedAmounts(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        votingEscrowedRate(overrides?: CallOverrides): Promise<BigNumber>;
        weth(overrides?: CallOverrides): Promise<BigNumber>;
        withdrawFromMlpVester(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawFromVeVester(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawToken(_token: PromiseOrValue<string>, _account: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        averageStakePeriod(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        batchCompoundForAccounts(_accounts: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        batchStakeMuxForAccount(_accounts: PromiseOrValue<string>[], _amounts: PromiseOrValue<BigNumberish>[], _unlockTime: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimAll(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimFromMlp(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimFromVe(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimableRewards(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimableVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claimableVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claimedVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claimedVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        compound(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        compoundForAccount(_account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        depositToMlpVester(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        depositToVeVester(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        feeRewardRate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        increaseStakeUnlockTime(lockPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        initialize(_tokens: [
            PromiseOrValue<string>,
            PromiseOrValue<string>,
            PromiseOrValue<string>,
            PromiseOrValue<string>,
            PromiseOrValue<string>
        ], _rewardTrackers: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>], _vesters: [PromiseOrValue<string>, PromiseOrValue<string>], _distributors: [PromiseOrValue<string>, PromiseOrValue<string>], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        maxVestableTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxVestableTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        mcb(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        mlp(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        mlpDistributor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        mlpFeeTracker(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        mlpLockAmount(account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        mlpMuxTracker(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        mlpVester(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        mux(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        muxDistributor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        muxRewardRate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        muxVester(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolOwnedRate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        protocolLiquidityOwner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        reservedMlpAmount(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setProtocolLiquidityOwner(_protocolLiquidityOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setTimelock(_timelock: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setVault(_vault: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stakeMcb(_amount: PromiseOrValue<BigNumberish>, lockPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stakeMcbForAccount(_account: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stakeMlp(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stakeMux(_amount: PromiseOrValue<BigNumberish>, lockPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stakedMlpAmount(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        timelock(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalVestedTokenFromMlp(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalVestedTokenFromVe(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unlockTime(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        unstakeMcbAndMux(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unstakeMlp(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        vault(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        veFeeTracker(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        veMuxTracker(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        votingEscrow(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        votingEscrowedAmounts(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        votingEscrowedRate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        weth(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdrawFromMlpVester(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawFromVeVester(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawToken(_token: PromiseOrValue<string>, _account: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
