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 AuraBoosterInterface extends utils.Interface {
    functions: {
        'FEE_DENOMINATOR()': FunctionFragment;
        'MaxFees()': FunctionFragment;
        'addPool(address,address,uint256)': FunctionFragment;
        'claimRewards(uint256,address)': FunctionFragment;
        'crv()': FunctionFragment;
        'deposit(uint256,uint256,bool)': FunctionFragment;
        'depositAll(uint256,bool)': FunctionFragment;
        'earmarkFees(address)': FunctionFragment;
        'earmarkIncentive()': FunctionFragment;
        'earmarkRewards(uint256)': FunctionFragment;
        'feeManager()': FunctionFragment;
        'feeTokens(address)': FunctionFragment;
        'gaugeMap(address)': FunctionFragment;
        'isShutdown()': FunctionFragment;
        'lockIncentive()': FunctionFragment;
        'lockRewards()': FunctionFragment;
        'minter()': FunctionFragment;
        'owner()': FunctionFragment;
        'platformFee()': FunctionFragment;
        'poolInfo(uint256)': FunctionFragment;
        'poolLength()': FunctionFragment;
        'poolManager()': FunctionFragment;
        'rewardArbitrator()': FunctionFragment;
        'rewardClaimed(uint256,address,uint256)': FunctionFragment;
        'rewardFactory()': FunctionFragment;
        'setArbitrator(address)': FunctionFragment;
        'setFactories(address,address,address)': FunctionFragment;
        'setFeeInfo(address,address)': FunctionFragment;
        'setFeeManager(address)': FunctionFragment;
        'setFees(uint256,uint256,uint256,uint256)': FunctionFragment;
        'setGaugeRedirect(uint256)': FunctionFragment;
        'setOwner(address)': FunctionFragment;
        'setPoolManager(address)': FunctionFragment;
        'setRewardContracts(address,address)': FunctionFragment;
        'setTreasury(address)': FunctionFragment;
        'setVote(bytes32,bool)': FunctionFragment;
        'setVoteDelegate(address)': FunctionFragment;
        'shutdownPool(uint256)': FunctionFragment;
        'shutdownSystem()': FunctionFragment;
        'staker()': FunctionFragment;
        'stakerIncentive()': FunctionFragment;
        'stakerRewards()': FunctionFragment;
        'stashFactory()': FunctionFragment;
        'tokenFactory()': FunctionFragment;
        'treasury()': FunctionFragment;
        'updateFeeInfo(address,bool)': FunctionFragment;
        'vote(uint256,address,bool)': FunctionFragment;
        'voteDelegate()': FunctionFragment;
        'voteGaugeWeight(address[],uint256[])': FunctionFragment;
        'voteOwnership()': FunctionFragment;
        'voteParameter()': FunctionFragment;
        'withdraw(uint256,uint256)': FunctionFragment;
        'withdrawAll(uint256)': FunctionFragment;
        'withdrawTo(uint256,uint256,address)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'FEE_DENOMINATOR' | 'MaxFees' | 'addPool' | 'claimRewards' | 'crv' | 'deposit' | 'depositAll' | 'earmarkFees' | 'earmarkIncentive' | 'earmarkRewards' | 'feeManager' | 'feeTokens' | 'gaugeMap' | 'isShutdown' | 'lockIncentive' | 'lockRewards' | 'minter' | 'owner' | 'platformFee' | 'poolInfo' | 'poolLength' | 'poolManager' | 'rewardArbitrator' | 'rewardClaimed' | 'rewardFactory' | 'setArbitrator' | 'setFactories' | 'setFeeInfo' | 'setFeeManager' | 'setFees' | 'setGaugeRedirect' | 'setOwner' | 'setPoolManager' | 'setRewardContracts' | 'setTreasury' | 'setVote' | 'setVoteDelegate' | 'shutdownPool' | 'shutdownSystem' | 'staker' | 'stakerIncentive' | 'stakerRewards' | 'stashFactory' | 'tokenFactory' | 'treasury' | 'updateFeeInfo' | 'vote' | 'voteDelegate' | 'voteGaugeWeight' | 'voteOwnership' | 'voteParameter' | 'withdraw' | 'withdrawAll' | 'withdrawTo'): FunctionFragment;
    encodeFunctionData(functionFragment: 'FEE_DENOMINATOR', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MaxFees', values?: undefined): string;
    encodeFunctionData(functionFragment: 'addPool', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'claimRewards', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'crv', values?: undefined): string;
    encodeFunctionData(functionFragment: 'deposit', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'depositAll', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'earmarkFees', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'earmarkIncentive', values?: undefined): string;
    encodeFunctionData(functionFragment: 'earmarkRewards', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'feeManager', values?: undefined): string;
    encodeFunctionData(functionFragment: 'feeTokens', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'gaugeMap', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isShutdown', values?: undefined): string;
    encodeFunctionData(functionFragment: 'lockIncentive', values?: undefined): string;
    encodeFunctionData(functionFragment: 'lockRewards', values?: undefined): string;
    encodeFunctionData(functionFragment: 'minter', values?: undefined): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'platformFee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'poolInfo', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'poolLength', values?: undefined): string;
    encodeFunctionData(functionFragment: 'poolManager', values?: undefined): string;
    encodeFunctionData(functionFragment: 'rewardArbitrator', values?: undefined): string;
    encodeFunctionData(functionFragment: 'rewardClaimed', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'rewardFactory', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setArbitrator', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setFactories', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setFeeInfo', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setFeeManager', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setFees', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'setGaugeRedirect', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setOwner', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setPoolManager', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setRewardContracts', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setTreasury', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setVote', values: [PromiseOrValue<BytesLike>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setVoteDelegate', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'shutdownPool', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'shutdownSystem', values?: undefined): string;
    encodeFunctionData(functionFragment: 'staker', values?: undefined): string;
    encodeFunctionData(functionFragment: 'stakerIncentive', values?: undefined): string;
    encodeFunctionData(functionFragment: 'stakerRewards', values?: undefined): string;
    encodeFunctionData(functionFragment: 'stashFactory', values?: undefined): string;
    encodeFunctionData(functionFragment: 'tokenFactory', values?: undefined): string;
    encodeFunctionData(functionFragment: 'treasury', values?: undefined): string;
    encodeFunctionData(functionFragment: 'updateFeeInfo', values: [PromiseOrValue<string>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'vote', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'voteDelegate', values?: undefined): string;
    encodeFunctionData(functionFragment: 'voteGaugeWeight', values: [PromiseOrValue<string>[], PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: 'voteOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'voteParameter', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdraw', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'withdrawAll', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'withdrawTo', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    decodeFunctionResult(functionFragment: 'FEE_DENOMINATOR', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MaxFees', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addPool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'crv', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositAll', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'earmarkFees', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'earmarkIncentive', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'earmarkRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'feeManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'feeTokens', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'gaugeMap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isShutdown', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lockIncentive', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lockRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'minter', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'platformFee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'poolInfo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'poolLength', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'poolManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'rewardArbitrator', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'rewardClaimed', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'rewardFactory', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setArbitrator', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFactories', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFeeInfo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFeeManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFees', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setGaugeRedirect', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setPoolManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setRewardContracts', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setTreasury', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setVote', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setVoteDelegate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'shutdownPool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'shutdownSystem', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'staker', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakerIncentive', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakerRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stashFactory', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'tokenFactory', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'treasury', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateFeeInfo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'vote', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'voteDelegate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'voteGaugeWeight', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'voteOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'voteParameter', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawAll', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawTo', data: BytesLike): Result;
    events: {
        'ArbitratorUpdated(address)': EventFragment;
        'Deposited(address,uint256,uint256)': EventFragment;
        'FactoriesUpdated(address,address,address)': EventFragment;
        'FeeInfoChanged(address,bool)': EventFragment;
        'FeeInfoUpdated(address,address,address)': EventFragment;
        'FeeManagerUpdated(address)': EventFragment;
        'FeesUpdated(uint256,uint256,uint256,uint256)': EventFragment;
        'OwnerUpdated(address)': EventFragment;
        'PoolAdded(address,address,address,address,address,uint256)': EventFragment;
        'PoolManagerUpdated(address)': EventFragment;
        'PoolShutdown(uint256)': EventFragment;
        'RewardContractsUpdated(address,address)': EventFragment;
        'TreasuryUpdated(address)': EventFragment;
        'VoteDelegateUpdated(address)': EventFragment;
        'Withdrawn(address,uint256,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'ArbitratorUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Deposited'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FactoriesUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FeeInfoChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FeeInfoUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FeeManagerUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FeesUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnerUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PoolAdded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PoolManagerUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PoolShutdown'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RewardContractsUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TreasuryUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'VoteDelegateUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Withdrawn'): EventFragment;
}
export interface ArbitratorUpdatedEventObject {
    newArbitrator: string;
}
export declare type ArbitratorUpdatedEvent = TypedEvent<[string], ArbitratorUpdatedEventObject>;
export declare type ArbitratorUpdatedEventFilter = TypedEventFilter<ArbitratorUpdatedEvent>;
export interface DepositedEventObject {
    user: string;
    poolid: BigNumber;
    amount: BigNumber;
}
export declare type DepositedEvent = TypedEvent<[string, BigNumber, BigNumber], DepositedEventObject>;
export declare type DepositedEventFilter = TypedEventFilter<DepositedEvent>;
export interface FactoriesUpdatedEventObject {
    rewardFactory: string;
    stashFactory: string;
    tokenFactory: string;
}
export declare type FactoriesUpdatedEvent = TypedEvent<[string, string, string], FactoriesUpdatedEventObject>;
export declare type FactoriesUpdatedEventFilter = TypedEventFilter<FactoriesUpdatedEvent>;
export interface FeeInfoChangedEventObject {
    feeDistro: string;
    active: boolean;
}
export declare type FeeInfoChangedEvent = TypedEvent<[string, boolean], FeeInfoChangedEventObject>;
export declare type FeeInfoChangedEventFilter = TypedEventFilter<FeeInfoChangedEvent>;
export interface FeeInfoUpdatedEventObject {
    feeDistro: string;
    lockFees: string;
    feeToken: string;
}
export declare type FeeInfoUpdatedEvent = TypedEvent<[string, string, string], FeeInfoUpdatedEventObject>;
export declare type FeeInfoUpdatedEventFilter = TypedEventFilter<FeeInfoUpdatedEvent>;
export interface FeeManagerUpdatedEventObject {
    newFeeManager: string;
}
export declare type FeeManagerUpdatedEvent = TypedEvent<[string], FeeManagerUpdatedEventObject>;
export declare type FeeManagerUpdatedEventFilter = TypedEventFilter<FeeManagerUpdatedEvent>;
export interface FeesUpdatedEventObject {
    lockIncentive: BigNumber;
    stakerIncentive: BigNumber;
    earmarkIncentive: BigNumber;
    platformFee: BigNumber;
}
export declare type FeesUpdatedEvent = TypedEvent<[BigNumber, BigNumber, BigNumber, BigNumber], FeesUpdatedEventObject>;
export declare type FeesUpdatedEventFilter = TypedEventFilter<FeesUpdatedEvent>;
export interface OwnerUpdatedEventObject {
    newOwner: string;
}
export declare type OwnerUpdatedEvent = TypedEvent<[string], OwnerUpdatedEventObject>;
export declare type OwnerUpdatedEventFilter = TypedEventFilter<OwnerUpdatedEvent>;
export interface PoolAddedEventObject {
    lpToken: string;
    gauge: string;
    token: string;
    rewardPool: string;
    stash: string;
    pid: BigNumber;
}
export declare type PoolAddedEvent = TypedEvent<[string, string, string, string, string, BigNumber], PoolAddedEventObject>;
export declare type PoolAddedEventFilter = TypedEventFilter<PoolAddedEvent>;
export interface PoolManagerUpdatedEventObject {
    newPoolManager: string;
}
export declare type PoolManagerUpdatedEvent = TypedEvent<[string], PoolManagerUpdatedEventObject>;
export declare type PoolManagerUpdatedEventFilter = TypedEventFilter<PoolManagerUpdatedEvent>;
export interface PoolShutdownEventObject {
    poolId: BigNumber;
}
export declare type PoolShutdownEvent = TypedEvent<[BigNumber], PoolShutdownEventObject>;
export declare type PoolShutdownEventFilter = TypedEventFilter<PoolShutdownEvent>;
export interface RewardContractsUpdatedEventObject {
    lockRewards: string;
    stakerRewards: string;
}
export declare type RewardContractsUpdatedEvent = TypedEvent<[string, string], RewardContractsUpdatedEventObject>;
export declare type RewardContractsUpdatedEventFilter = TypedEventFilter<RewardContractsUpdatedEvent>;
export interface TreasuryUpdatedEventObject {
    newTreasury: string;
}
export declare type TreasuryUpdatedEvent = TypedEvent<[string], TreasuryUpdatedEventObject>;
export declare type TreasuryUpdatedEventFilter = TypedEventFilter<TreasuryUpdatedEvent>;
export interface VoteDelegateUpdatedEventObject {
    newVoteDelegate: string;
}
export declare type VoteDelegateUpdatedEvent = TypedEvent<[string], VoteDelegateUpdatedEventObject>;
export declare type VoteDelegateUpdatedEventFilter = TypedEventFilter<VoteDelegateUpdatedEvent>;
export interface WithdrawnEventObject {
    user: string;
    poolid: BigNumber;
    amount: BigNumber;
}
export declare type WithdrawnEvent = TypedEvent<[string, BigNumber, BigNumber], WithdrawnEventObject>;
export declare type WithdrawnEventFilter = TypedEventFilter<WithdrawnEvent>;
export interface AuraBooster extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: AuraBoosterInterface;
    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: {
        FEE_DENOMINATOR(overrides?: CallOverrides): Promise<[BigNumber]>;
        MaxFees(overrides?: CallOverrides): Promise<[BigNumber]>;
        addPool(_lptoken: PromiseOrValue<string>, _gauge: PromiseOrValue<string>, _stashVersion: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimRewards(_pid: PromiseOrValue<BigNumberish>, _gauge: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        crv(overrides?: CallOverrides): Promise<[string]>;
        deposit(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _stake: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        depositAll(_pid: PromiseOrValue<BigNumberish>, _stake: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        earmarkFees(_feeToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        earmarkIncentive(overrides?: CallOverrides): Promise<[BigNumber]>;
        earmarkRewards(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        feeManager(overrides?: CallOverrides): Promise<[string]>;
        feeTokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            string,
            string,
            boolean
        ] & {
            distro: string;
            rewards: string;
            active: boolean;
        }>;
        gaugeMap(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isShutdown(overrides?: CallOverrides): Promise<[boolean]>;
        lockIncentive(overrides?: CallOverrides): Promise<[BigNumber]>;
        lockRewards(overrides?: CallOverrides): Promise<[string]>;
        minter(overrides?: CallOverrides): Promise<[string]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        platformFee(overrides?: CallOverrides): Promise<[BigNumber]>;
        poolInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            string,
            string,
            string,
            string,
            string,
            boolean
        ] & {
            lptoken: string;
            token: string;
            gauge: string;
            crvRewards: string;
            stash: string;
            shutdown: boolean;
        }>;
        poolLength(overrides?: CallOverrides): Promise<[BigNumber]>;
        poolManager(overrides?: CallOverrides): Promise<[string]>;
        rewardArbitrator(overrides?: CallOverrides): Promise<[string]>;
        rewardClaimed(_pid: PromiseOrValue<BigNumberish>, _address: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        rewardFactory(overrides?: CallOverrides): Promise<[string]>;
        setArbitrator(_arb: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setFactories(_rfactory: PromiseOrValue<string>, _sfactory: PromiseOrValue<string>, _tfactory: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setFeeInfo(_feeToken: PromiseOrValue<string>, _feeDistro: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setFeeManager(_feeM: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setFees(_lockFees: PromiseOrValue<BigNumberish>, _stakerFees: PromiseOrValue<BigNumberish>, _callerFees: PromiseOrValue<BigNumberish>, _platform: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setGaugeRedirect(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setOwner(_owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setPoolManager(_poolM: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setRewardContracts(_rewards: PromiseOrValue<string>, _stakerRewards: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setTreasury(_treasury: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setVote(_hash: PromiseOrValue<BytesLike>, valid: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setVoteDelegate(_voteDelegate: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        shutdownPool(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        shutdownSystem(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        staker(overrides?: CallOverrides): Promise<[string]>;
        stakerIncentive(overrides?: CallOverrides): Promise<[BigNumber]>;
        stakerRewards(overrides?: CallOverrides): Promise<[string]>;
        stashFactory(overrides?: CallOverrides): Promise<[string]>;
        tokenFactory(overrides?: CallOverrides): Promise<[string]>;
        treasury(overrides?: CallOverrides): Promise<[string]>;
        updateFeeInfo(_feeToken: PromiseOrValue<string>, _active: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        vote(_voteId: PromiseOrValue<BigNumberish>, _votingAddress: PromiseOrValue<string>, _support: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        voteDelegate(overrides?: CallOverrides): Promise<[string]>;
        voteGaugeWeight(_gauge: PromiseOrValue<string>[], _weight: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        voteOwnership(overrides?: CallOverrides): Promise<[string]>;
        voteParameter(overrides?: CallOverrides): Promise<[string]>;
        withdraw(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawAll(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawTo(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    FEE_DENOMINATOR(overrides?: CallOverrides): Promise<BigNumber>;
    MaxFees(overrides?: CallOverrides): Promise<BigNumber>;
    addPool(_lptoken: PromiseOrValue<string>, _gauge: PromiseOrValue<string>, _stashVersion: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimRewards(_pid: PromiseOrValue<BigNumberish>, _gauge: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    crv(overrides?: CallOverrides): Promise<string>;
    deposit(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _stake: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    depositAll(_pid: PromiseOrValue<BigNumberish>, _stake: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    earmarkFees(_feeToken: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    earmarkIncentive(overrides?: CallOverrides): Promise<BigNumber>;
    earmarkRewards(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    feeManager(overrides?: CallOverrides): Promise<string>;
    feeTokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        string,
        string,
        boolean
    ] & {
        distro: string;
        rewards: string;
        active: boolean;
    }>;
    gaugeMap(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isShutdown(overrides?: CallOverrides): Promise<boolean>;
    lockIncentive(overrides?: CallOverrides): Promise<BigNumber>;
    lockRewards(overrides?: CallOverrides): Promise<string>;
    minter(overrides?: CallOverrides): Promise<string>;
    owner(overrides?: CallOverrides): Promise<string>;
    platformFee(overrides?: CallOverrides): Promise<BigNumber>;
    poolInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        string,
        string,
        string,
        string,
        string,
        boolean
    ] & {
        lptoken: string;
        token: string;
        gauge: string;
        crvRewards: string;
        stash: string;
        shutdown: boolean;
    }>;
    poolLength(overrides?: CallOverrides): Promise<BigNumber>;
    poolManager(overrides?: CallOverrides): Promise<string>;
    rewardArbitrator(overrides?: CallOverrides): Promise<string>;
    rewardClaimed(_pid: PromiseOrValue<BigNumberish>, _address: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    rewardFactory(overrides?: CallOverrides): Promise<string>;
    setArbitrator(_arb: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setFactories(_rfactory: PromiseOrValue<string>, _sfactory: PromiseOrValue<string>, _tfactory: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setFeeInfo(_feeToken: PromiseOrValue<string>, _feeDistro: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setFeeManager(_feeM: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setFees(_lockFees: PromiseOrValue<BigNumberish>, _stakerFees: PromiseOrValue<BigNumberish>, _callerFees: PromiseOrValue<BigNumberish>, _platform: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setGaugeRedirect(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setOwner(_owner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setPoolManager(_poolM: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setRewardContracts(_rewards: PromiseOrValue<string>, _stakerRewards: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setTreasury(_treasury: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setVote(_hash: PromiseOrValue<BytesLike>, valid: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setVoteDelegate(_voteDelegate: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    shutdownPool(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    shutdownSystem(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    staker(overrides?: CallOverrides): Promise<string>;
    stakerIncentive(overrides?: CallOverrides): Promise<BigNumber>;
    stakerRewards(overrides?: CallOverrides): Promise<string>;
    stashFactory(overrides?: CallOverrides): Promise<string>;
    tokenFactory(overrides?: CallOverrides): Promise<string>;
    treasury(overrides?: CallOverrides): Promise<string>;
    updateFeeInfo(_feeToken: PromiseOrValue<string>, _active: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    vote(_voteId: PromiseOrValue<BigNumberish>, _votingAddress: PromiseOrValue<string>, _support: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    voteDelegate(overrides?: CallOverrides): Promise<string>;
    voteGaugeWeight(_gauge: PromiseOrValue<string>[], _weight: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    voteOwnership(overrides?: CallOverrides): Promise<string>;
    voteParameter(overrides?: CallOverrides): Promise<string>;
    withdraw(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawAll(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawTo(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _to: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        FEE_DENOMINATOR(overrides?: CallOverrides): Promise<BigNumber>;
        MaxFees(overrides?: CallOverrides): Promise<BigNumber>;
        addPool(_lptoken: PromiseOrValue<string>, _gauge: PromiseOrValue<string>, _stashVersion: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        claimRewards(_pid: PromiseOrValue<BigNumberish>, _gauge: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        crv(overrides?: CallOverrides): Promise<string>;
        deposit(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _stake: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<boolean>;
        depositAll(_pid: PromiseOrValue<BigNumberish>, _stake: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<boolean>;
        earmarkFees(_feeToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        earmarkIncentive(overrides?: CallOverrides): Promise<BigNumber>;
        earmarkRewards(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        feeManager(overrides?: CallOverrides): Promise<string>;
        feeTokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            string,
            string,
            boolean
        ] & {
            distro: string;
            rewards: string;
            active: boolean;
        }>;
        gaugeMap(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isShutdown(overrides?: CallOverrides): Promise<boolean>;
        lockIncentive(overrides?: CallOverrides): Promise<BigNumber>;
        lockRewards(overrides?: CallOverrides): Promise<string>;
        minter(overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        platformFee(overrides?: CallOverrides): Promise<BigNumber>;
        poolInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            string,
            string,
            string,
            string,
            string,
            boolean
        ] & {
            lptoken: string;
            token: string;
            gauge: string;
            crvRewards: string;
            stash: string;
            shutdown: boolean;
        }>;
        poolLength(overrides?: CallOverrides): Promise<BigNumber>;
        poolManager(overrides?: CallOverrides): Promise<string>;
        rewardArbitrator(overrides?: CallOverrides): Promise<string>;
        rewardClaimed(_pid: PromiseOrValue<BigNumberish>, _address: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        rewardFactory(overrides?: CallOverrides): Promise<string>;
        setArbitrator(_arb: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setFactories(_rfactory: PromiseOrValue<string>, _sfactory: PromiseOrValue<string>, _tfactory: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setFeeInfo(_feeToken: PromiseOrValue<string>, _feeDistro: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setFeeManager(_feeM: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setFees(_lockFees: PromiseOrValue<BigNumberish>, _stakerFees: PromiseOrValue<BigNumberish>, _callerFees: PromiseOrValue<BigNumberish>, _platform: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setGaugeRedirect(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        setOwner(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setPoolManager(_poolM: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setRewardContracts(_rewards: PromiseOrValue<string>, _stakerRewards: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setTreasury(_treasury: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setVote(_hash: PromiseOrValue<BytesLike>, valid: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<boolean>;
        setVoteDelegate(_voteDelegate: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        shutdownPool(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        shutdownSystem(overrides?: CallOverrides): Promise<void>;
        staker(overrides?: CallOverrides): Promise<string>;
        stakerIncentive(overrides?: CallOverrides): Promise<BigNumber>;
        stakerRewards(overrides?: CallOverrides): Promise<string>;
        stashFactory(overrides?: CallOverrides): Promise<string>;
        tokenFactory(overrides?: CallOverrides): Promise<string>;
        treasury(overrides?: CallOverrides): Promise<string>;
        updateFeeInfo(_feeToken: PromiseOrValue<string>, _active: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        vote(_voteId: PromiseOrValue<BigNumberish>, _votingAddress: PromiseOrValue<string>, _support: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<boolean>;
        voteDelegate(overrides?: CallOverrides): Promise<string>;
        voteGaugeWeight(_gauge: PromiseOrValue<string>[], _weight: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<boolean>;
        voteOwnership(overrides?: CallOverrides): Promise<string>;
        voteParameter(overrides?: CallOverrides): Promise<string>;
        withdraw(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        withdrawAll(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        withdrawTo(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _to: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    };
    filters: {
        'ArbitratorUpdated(address)'(newArbitrator?: null): ArbitratorUpdatedEventFilter;
        ArbitratorUpdated(newArbitrator?: null): ArbitratorUpdatedEventFilter;
        'Deposited(address,uint256,uint256)'(user?: PromiseOrValue<string> | null, poolid?: PromiseOrValue<BigNumberish> | null, amount?: null): DepositedEventFilter;
        Deposited(user?: PromiseOrValue<string> | null, poolid?: PromiseOrValue<BigNumberish> | null, amount?: null): DepositedEventFilter;
        'FactoriesUpdated(address,address,address)'(rewardFactory?: null, stashFactory?: null, tokenFactory?: null): FactoriesUpdatedEventFilter;
        FactoriesUpdated(rewardFactory?: null, stashFactory?: null, tokenFactory?: null): FactoriesUpdatedEventFilter;
        'FeeInfoChanged(address,bool)'(feeDistro?: null, active?: null): FeeInfoChangedEventFilter;
        FeeInfoChanged(feeDistro?: null, active?: null): FeeInfoChangedEventFilter;
        'FeeInfoUpdated(address,address,address)'(feeDistro?: null, lockFees?: null, feeToken?: null): FeeInfoUpdatedEventFilter;
        FeeInfoUpdated(feeDistro?: null, lockFees?: null, feeToken?: null): FeeInfoUpdatedEventFilter;
        'FeeManagerUpdated(address)'(newFeeManager?: null): FeeManagerUpdatedEventFilter;
        FeeManagerUpdated(newFeeManager?: null): FeeManagerUpdatedEventFilter;
        'FeesUpdated(uint256,uint256,uint256,uint256)'(lockIncentive?: null, stakerIncentive?: null, earmarkIncentive?: null, platformFee?: null): FeesUpdatedEventFilter;
        FeesUpdated(lockIncentive?: null, stakerIncentive?: null, earmarkIncentive?: null, platformFee?: null): FeesUpdatedEventFilter;
        'OwnerUpdated(address)'(newOwner?: null): OwnerUpdatedEventFilter;
        OwnerUpdated(newOwner?: null): OwnerUpdatedEventFilter;
        'PoolAdded(address,address,address,address,address,uint256)'(lpToken?: null, gauge?: null, token?: null, rewardPool?: null, stash?: null, pid?: null): PoolAddedEventFilter;
        PoolAdded(lpToken?: null, gauge?: null, token?: null, rewardPool?: null, stash?: null, pid?: null): PoolAddedEventFilter;
        'PoolManagerUpdated(address)'(newPoolManager?: null): PoolManagerUpdatedEventFilter;
        PoolManagerUpdated(newPoolManager?: null): PoolManagerUpdatedEventFilter;
        'PoolShutdown(uint256)'(poolId?: null): PoolShutdownEventFilter;
        PoolShutdown(poolId?: null): PoolShutdownEventFilter;
        'RewardContractsUpdated(address,address)'(lockRewards?: null, stakerRewards?: null): RewardContractsUpdatedEventFilter;
        RewardContractsUpdated(lockRewards?: null, stakerRewards?: null): RewardContractsUpdatedEventFilter;
        'TreasuryUpdated(address)'(newTreasury?: null): TreasuryUpdatedEventFilter;
        TreasuryUpdated(newTreasury?: null): TreasuryUpdatedEventFilter;
        'VoteDelegateUpdated(address)'(newVoteDelegate?: null): VoteDelegateUpdatedEventFilter;
        VoteDelegateUpdated(newVoteDelegate?: null): VoteDelegateUpdatedEventFilter;
        'Withdrawn(address,uint256,uint256)'(user?: PromiseOrValue<string> | null, poolid?: PromiseOrValue<BigNumberish> | null, amount?: null): WithdrawnEventFilter;
        Withdrawn(user?: PromiseOrValue<string> | null, poolid?: PromiseOrValue<BigNumberish> | null, amount?: null): WithdrawnEventFilter;
    };
    estimateGas: {
        FEE_DENOMINATOR(overrides?: CallOverrides): Promise<BigNumber>;
        MaxFees(overrides?: CallOverrides): Promise<BigNumber>;
        addPool(_lptoken: PromiseOrValue<string>, _gauge: PromiseOrValue<string>, _stashVersion: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimRewards(_pid: PromiseOrValue<BigNumberish>, _gauge: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        crv(overrides?: CallOverrides): Promise<BigNumber>;
        deposit(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _stake: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        depositAll(_pid: PromiseOrValue<BigNumberish>, _stake: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        earmarkFees(_feeToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        earmarkIncentive(overrides?: CallOverrides): Promise<BigNumber>;
        earmarkRewards(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        feeManager(overrides?: CallOverrides): Promise<BigNumber>;
        feeTokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        gaugeMap(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isShutdown(overrides?: CallOverrides): Promise<BigNumber>;
        lockIncentive(overrides?: CallOverrides): Promise<BigNumber>;
        lockRewards(overrides?: CallOverrides): Promise<BigNumber>;
        minter(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        platformFee(overrides?: CallOverrides): Promise<BigNumber>;
        poolInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        poolLength(overrides?: CallOverrides): Promise<BigNumber>;
        poolManager(overrides?: CallOverrides): Promise<BigNumber>;
        rewardArbitrator(overrides?: CallOverrides): Promise<BigNumber>;
        rewardClaimed(_pid: PromiseOrValue<BigNumberish>, _address: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        rewardFactory(overrides?: CallOverrides): Promise<BigNumber>;
        setArbitrator(_arb: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setFactories(_rfactory: PromiseOrValue<string>, _sfactory: PromiseOrValue<string>, _tfactory: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setFeeInfo(_feeToken: PromiseOrValue<string>, _feeDistro: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setFeeManager(_feeM: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setFees(_lockFees: PromiseOrValue<BigNumberish>, _stakerFees: PromiseOrValue<BigNumberish>, _callerFees: PromiseOrValue<BigNumberish>, _platform: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setGaugeRedirect(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setOwner(_owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setPoolManager(_poolM: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setRewardContracts(_rewards: PromiseOrValue<string>, _stakerRewards: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setTreasury(_treasury: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setVote(_hash: PromiseOrValue<BytesLike>, valid: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setVoteDelegate(_voteDelegate: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        shutdownPool(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        shutdownSystem(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        staker(overrides?: CallOverrides): Promise<BigNumber>;
        stakerIncentive(overrides?: CallOverrides): Promise<BigNumber>;
        stakerRewards(overrides?: CallOverrides): Promise<BigNumber>;
        stashFactory(overrides?: CallOverrides): Promise<BigNumber>;
        tokenFactory(overrides?: CallOverrides): Promise<BigNumber>;
        treasury(overrides?: CallOverrides): Promise<BigNumber>;
        updateFeeInfo(_feeToken: PromiseOrValue<string>, _active: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        vote(_voteId: PromiseOrValue<BigNumberish>, _votingAddress: PromiseOrValue<string>, _support: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        voteDelegate(overrides?: CallOverrides): Promise<BigNumber>;
        voteGaugeWeight(_gauge: PromiseOrValue<string>[], _weight: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        voteOwnership(overrides?: CallOverrides): Promise<BigNumber>;
        voteParameter(overrides?: CallOverrides): Promise<BigNumber>;
        withdraw(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawAll(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawTo(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        FEE_DENOMINATOR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MaxFees(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        addPool(_lptoken: PromiseOrValue<string>, _gauge: PromiseOrValue<string>, _stashVersion: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimRewards(_pid: PromiseOrValue<BigNumberish>, _gauge: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        crv(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        deposit(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _stake: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        depositAll(_pid: PromiseOrValue<BigNumberish>, _stake: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        earmarkFees(_feeToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        earmarkIncentive(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        earmarkRewards(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        feeManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        feeTokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        gaugeMap(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isShutdown(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lockIncentive(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lockRewards(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        minter(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        platformFee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolLength(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        rewardArbitrator(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        rewardClaimed(_pid: PromiseOrValue<BigNumberish>, _address: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        rewardFactory(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setArbitrator(_arb: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setFactories(_rfactory: PromiseOrValue<string>, _sfactory: PromiseOrValue<string>, _tfactory: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setFeeInfo(_feeToken: PromiseOrValue<string>, _feeDistro: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setFeeManager(_feeM: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setFees(_lockFees: PromiseOrValue<BigNumberish>, _stakerFees: PromiseOrValue<BigNumberish>, _callerFees: PromiseOrValue<BigNumberish>, _platform: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setGaugeRedirect(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setOwner(_owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setPoolManager(_poolM: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setRewardContracts(_rewards: PromiseOrValue<string>, _stakerRewards: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setTreasury(_treasury: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setVote(_hash: PromiseOrValue<BytesLike>, valid: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setVoteDelegate(_voteDelegate: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        shutdownPool(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        shutdownSystem(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        staker(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        stakerIncentive(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        stakerRewards(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        stashFactory(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tokenFactory(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        treasury(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        updateFeeInfo(_feeToken: PromiseOrValue<string>, _active: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        vote(_voteId: PromiseOrValue<BigNumberish>, _votingAddress: PromiseOrValue<string>, _support: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        voteDelegate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        voteGaugeWeight(_gauge: PromiseOrValue<string>[], _weight: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        voteOwnership(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        voteParameter(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdraw(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawAll(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawTo(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
