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 RamsesVoterInterface extends utils.Interface {
    functions: {
        '_ve()': FunctionFragment;
        'attachTokenToGauge(uint256,address)': FunctionFragment;
        'base()': FunctionFragment;
        'claimBribes(address[],address[][],uint256)': FunctionFragment;
        'claimFees(address[],address[][],uint256)': FunctionFragment;
        'claimRewards(address[],address[][])': FunctionFragment;
        'claimable(address)': FunctionFragment;
        'createGauge(address)': FunctionFragment;
        'detachTokenFromGauge(uint256,address)': FunctionFragment;
        'distribute(address[])': FunctionFragment;
        'distribute(address)': FunctionFragment;
        'distribute(uint256,uint256)': FunctionFragment;
        'distribute()': FunctionFragment;
        'distributeFees(address[])': FunctionFragment;
        'distro()': FunctionFragment;
        'emergencyCouncil()': FunctionFragment;
        'emitDeposit(uint256,address,uint256)': FunctionFragment;
        'emitWithdraw(uint256,address,uint256)': FunctionFragment;
        'factory()': FunctionFragment;
        'feeDistributers(address)': FunctionFragment;
        'feeDistributorFactory()': FunctionFragment;
        'gaugefactory()': FunctionFragment;
        'gauges(address)': FunctionFragment;
        'getVotes(uint256,uint256)': FunctionFragment;
        'governor()': FunctionFragment;
        'initialize(address,address,address,address,address,address,address[])': FunctionFragment;
        'isAlive(address)': FunctionFragment;
        'isGauge(address)': FunctionFragment;
        'isWhitelisted(address)': FunctionFragment;
        'killGauge(address)': FunctionFragment;
        'lastVoted(uint256)': FunctionFragment;
        'length()': FunctionFragment;
        'minter()': FunctionFragment;
        'notifyRewardAmount(uint256)': FunctionFragment;
        'poke(uint256)': FunctionFragment;
        'poolForGauge(address)': FunctionFragment;
        'poolVote(uint256,uint256)': FunctionFragment;
        'pools(uint256)': FunctionFragment;
        'removeGaugeRewards(address[],address[])': FunctionFragment;
        'reset(uint256)': FunctionFragment;
        'resetVotes(uint256,uint256)': FunctionFragment;
        'reviveGauge(address)': FunctionFragment;
        'setEmergencyCouncil(address)': FunctionFragment;
        'setGovernor(address)': FunctionFragment;
        'totalWeight()': FunctionFragment;
        'updateAll()': FunctionFragment;
        'updateFor(address[])': FunctionFragment;
        'updateForRange(uint256,uint256)': FunctionFragment;
        'updateGauge(address)': FunctionFragment;
        'usedWeights(uint256)': FunctionFragment;
        'vote(uint256,address[],uint256[])': FunctionFragment;
        'votes(uint256,address)': FunctionFragment;
        'weights(address)': FunctionFragment;
        'whitelist(address)': FunctionFragment;
        'whitelistGaugeRewards(address[],address[])': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: '_ve' | 'attachTokenToGauge' | 'base' | 'claimBribes' | 'claimFees' | 'claimRewards' | 'claimable' | 'createGauge' | 'detachTokenFromGauge' | 'distribute(address[])' | 'distribute(address)' | 'distribute(uint256,uint256)' | 'distribute()' | 'distributeFees' | 'distro' | 'emergencyCouncil' | 'emitDeposit' | 'emitWithdraw' | 'factory' | 'feeDistributers' | 'feeDistributorFactory' | 'gaugefactory' | 'gauges' | 'getVotes' | 'governor' | 'initialize' | 'isAlive' | 'isGauge' | 'isWhitelisted' | 'killGauge' | 'lastVoted' | 'length' | 'minter' | 'notifyRewardAmount' | 'poke' | 'poolForGauge' | 'poolVote' | 'pools' | 'removeGaugeRewards' | 'reset' | 'resetVotes' | 'reviveGauge' | 'setEmergencyCouncil' | 'setGovernor' | 'totalWeight' | 'updateAll' | 'updateFor' | 'updateForRange' | 'updateGauge' | 'usedWeights' | 'vote' | 'votes' | 'weights' | 'whitelist' | 'whitelistGaugeRewards'): FunctionFragment;
    encodeFunctionData(functionFragment: '_ve', values?: undefined): string;
    encodeFunctionData(functionFragment: 'attachTokenToGauge', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'base', values?: undefined): string;
    encodeFunctionData(functionFragment: 'claimBribes', values: [PromiseOrValue<string>[], PromiseOrValue<string>[][], PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'claimFees', values: [PromiseOrValue<string>[], PromiseOrValue<string>[][], PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'claimRewards', values: [PromiseOrValue<string>[], PromiseOrValue<string>[][]]): string;
    encodeFunctionData(functionFragment: 'claimable', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'createGauge', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'detachTokenFromGauge', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'distribute(address[])', values: [PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'distribute(address)', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'distribute(uint256,uint256)', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'distribute()', values?: undefined): string;
    encodeFunctionData(functionFragment: 'distributeFees', values: [PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'distro', values?: undefined): string;
    encodeFunctionData(functionFragment: 'emergencyCouncil', values?: undefined): string;
    encodeFunctionData(functionFragment: 'emitDeposit', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'emitWithdraw', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'factory', values?: undefined): string;
    encodeFunctionData(functionFragment: 'feeDistributers', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'feeDistributorFactory', values?: undefined): string;
    encodeFunctionData(functionFragment: 'gaugefactory', values?: undefined): string;
    encodeFunctionData(functionFragment: 'gauges', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getVotes', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'governor', values?: undefined): string;
    encodeFunctionData(functionFragment: 'initialize', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>[]
    ]): string;
    encodeFunctionData(functionFragment: 'isAlive', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isGauge', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isWhitelisted', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'killGauge', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'lastVoted', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'length', values?: undefined): string;
    encodeFunctionData(functionFragment: 'minter', values?: undefined): string;
    encodeFunctionData(functionFragment: 'notifyRewardAmount', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'poke', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'poolForGauge', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'poolVote', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'pools', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'removeGaugeRewards', values: [PromiseOrValue<string>[], PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'reset', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'resetVotes', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'reviveGauge', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setEmergencyCouncil', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setGovernor', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'totalWeight', values?: undefined): string;
    encodeFunctionData(functionFragment: 'updateAll', values?: undefined): string;
    encodeFunctionData(functionFragment: 'updateFor', values: [PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'updateForRange', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'updateGauge', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'usedWeights', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'vote', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>[], PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: 'votes', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'weights', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'whitelist', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'whitelistGaugeRewards', values: [PromiseOrValue<string>[], PromiseOrValue<string>[]]): string;
    decodeFunctionResult(functionFragment: '_ve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'attachTokenToGauge', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'base', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimBribes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimFees', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimable', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'createGauge', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'detachTokenFromGauge', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'distribute(address[])', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'distribute(address)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'distribute(uint256,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'distribute()', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'distributeFees', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'distro', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'emergencyCouncil', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'emitDeposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'emitWithdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'factory', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'feeDistributers', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'feeDistributorFactory', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'gaugefactory', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'gauges', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getVotes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'governor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isAlive', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isGauge', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isWhitelisted', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'killGauge', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lastVoted', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'length', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'minter', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'notifyRewardAmount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'poke', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'poolForGauge', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'poolVote', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pools', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeGaugeRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'reset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'resetVotes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'reviveGauge', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setEmergencyCouncil', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setGovernor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalWeight', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateAll', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateFor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateForRange', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateGauge', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'usedWeights', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'vote', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'votes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'weights', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'whitelist', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'whitelistGaugeRewards', data: BytesLike): Result;
    events: {
        'Abstained(uint256,uint256)': EventFragment;
        'Attach(address,address,uint256)': EventFragment;
        'Deposit(address,address,uint256,uint256)': EventFragment;
        'Detach(address,address,uint256)': EventFragment;
        'DistributeReward(address,address,uint256)': EventFragment;
        'GaugeCreated(address,address,address,address)': EventFragment;
        'GaugeKilled(address)': EventFragment;
        'GaugeRevived(address)': EventFragment;
        'Initialized(uint8)': EventFragment;
        'NotifyReward(address,address,uint256)': EventFragment;
        'Voted(address,uint256,uint256)': EventFragment;
        'Whitelisted(address,address)': EventFragment;
        'Withdraw(address,address,uint256,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'Abstained'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Attach'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Deposit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Detach'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DistributeReward'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'GaugeCreated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'GaugeKilled'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'GaugeRevived'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Initialized'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'NotifyReward'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Voted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Whitelisted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Withdraw'): EventFragment;
}
export interface AbstainedEventObject {
    tokenId: BigNumber;
    weight: BigNumber;
}
export declare type AbstainedEvent = TypedEvent<[BigNumber, BigNumber], AbstainedEventObject>;
export declare type AbstainedEventFilter = TypedEventFilter<AbstainedEvent>;
export interface AttachEventObject {
    owner: string;
    gauge: string;
    tokenId: BigNumber;
}
export declare type AttachEvent = TypedEvent<[string, string, BigNumber], AttachEventObject>;
export declare type AttachEventFilter = TypedEventFilter<AttachEvent>;
export interface DepositEventObject {
    lp: string;
    gauge: string;
    tokenId: BigNumber;
    amount: BigNumber;
}
export declare type DepositEvent = TypedEvent<[string, string, BigNumber, BigNumber], DepositEventObject>;
export declare type DepositEventFilter = TypedEventFilter<DepositEvent>;
export interface DetachEventObject {
    owner: string;
    gauge: string;
    tokenId: BigNumber;
}
export declare type DetachEvent = TypedEvent<[string, string, BigNumber], DetachEventObject>;
export declare type DetachEventFilter = TypedEventFilter<DetachEvent>;
export interface DistributeRewardEventObject {
    sender: string;
    gauge: string;
    amount: BigNumber;
}
export declare type DistributeRewardEvent = TypedEvent<[string, string, BigNumber], DistributeRewardEventObject>;
export declare type DistributeRewardEventFilter = TypedEventFilter<DistributeRewardEvent>;
export interface GaugeCreatedEventObject {
    gauge: string;
    creator: string;
    feeDistributer: string;
    pool: string;
}
export declare type GaugeCreatedEvent = TypedEvent<[string, string, string, string], GaugeCreatedEventObject>;
export declare type GaugeCreatedEventFilter = TypedEventFilter<GaugeCreatedEvent>;
export interface GaugeKilledEventObject {
    gauge: string;
}
export declare type GaugeKilledEvent = TypedEvent<[string], GaugeKilledEventObject>;
export declare type GaugeKilledEventFilter = TypedEventFilter<GaugeKilledEvent>;
export interface GaugeRevivedEventObject {
    gauge: string;
}
export declare type GaugeRevivedEvent = TypedEvent<[string], GaugeRevivedEventObject>;
export declare type GaugeRevivedEventFilter = TypedEventFilter<GaugeRevivedEvent>;
export interface InitializedEventObject {
    version: number;
}
export declare type InitializedEvent = TypedEvent<[number], InitializedEventObject>;
export declare type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
export interface NotifyRewardEventObject {
    sender: string;
    reward: string;
    amount: BigNumber;
}
export declare type NotifyRewardEvent = TypedEvent<[string, string, BigNumber], NotifyRewardEventObject>;
export declare type NotifyRewardEventFilter = TypedEventFilter<NotifyRewardEvent>;
export interface VotedEventObject {
    voter: string;
    tokenId: BigNumber;
    weight: BigNumber;
}
export declare type VotedEvent = TypedEvent<[string, BigNumber, BigNumber], VotedEventObject>;
export declare type VotedEventFilter = TypedEventFilter<VotedEvent>;
export interface WhitelistedEventObject {
    whitelister: string;
    token: string;
}
export declare type WhitelistedEvent = TypedEvent<[string, string], WhitelistedEventObject>;
export declare type WhitelistedEventFilter = TypedEventFilter<WhitelistedEvent>;
export interface WithdrawEventObject {
    lp: string;
    gauge: string;
    tokenId: BigNumber;
    amount: BigNumber;
}
export declare type WithdrawEvent = TypedEvent<[string, string, BigNumber, BigNumber], WithdrawEventObject>;
export declare type WithdrawEventFilter = TypedEventFilter<WithdrawEvent>;
export interface RamsesVoter extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: RamsesVoterInterface;
    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: {
        _ve(overrides?: CallOverrides): Promise<[string]>;
        attachTokenToGauge(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        base(overrides?: CallOverrides): Promise<[string]>;
        claimBribes(_bribes: PromiseOrValue<string>[], _tokens: PromiseOrValue<string>[][], _tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimFees(_fees: PromiseOrValue<string>[], _tokens: PromiseOrValue<string>[][], _tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimRewards(_gauges: PromiseOrValue<string>[], _tokens: PromiseOrValue<string>[][], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimable(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        createGauge(_pool: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        detachTokenFromGauge(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'distribute(address[])'(_gauges: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'distribute(address)'(_gauge: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'distribute(uint256,uint256)'(start: PromiseOrValue<BigNumberish>, finish: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'distribute()'(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        distributeFees(_gauges: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        distro(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        emergencyCouncil(overrides?: CallOverrides): Promise<[string]>;
        emitDeposit(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        emitWithdraw(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        factory(overrides?: CallOverrides): Promise<[string]>;
        feeDistributers(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string]>;
        feeDistributorFactory(overrides?: CallOverrides): Promise<[string]>;
        gaugefactory(overrides?: CallOverrides): Promise<[string]>;
        gauges(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string]>;
        getVotes(fromTokenId: PromiseOrValue<BigNumberish>, toTokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            string[][],
            BigNumber[][]
        ] & {
            tokensVotes: string[][];
            tokensWeights: BigNumber[][];
        }>;
        governor(overrides?: CallOverrides): Promise<[string]>;
        initialize(__ve: PromiseOrValue<string>, _factory: PromiseOrValue<string>, _gauges: PromiseOrValue<string>, _feeDistributorFactory: PromiseOrValue<string>, _minter: PromiseOrValue<string>, _msig: PromiseOrValue<string>, _tokens: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isAlive(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isGauge(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isWhitelisted(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        killGauge(_gauge: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        lastVoted(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        length(overrides?: CallOverrides): Promise<[BigNumber]>;
        minter(overrides?: CallOverrides): Promise<[string]>;
        notifyRewardAmount(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        poke(_tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        poolForGauge(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string]>;
        poolVote(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        pools(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        removeGaugeRewards(_gauges: PromiseOrValue<string>[], _rewards: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        reset(_tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        resetVotes(fromTokenId: PromiseOrValue<BigNumberish>, toTokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        reviveGauge(_gauge: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setEmergencyCouncil(_council: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setGovernor(_governor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        totalWeight(overrides?: CallOverrides): Promise<[BigNumber]>;
        updateAll(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateFor(_gauges: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateForRange(start: PromiseOrValue<BigNumberish>, end: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateGauge(_gauge: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        usedWeights(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        vote(tokenId: PromiseOrValue<BigNumberish>, _poolVote: PromiseOrValue<string>[], _weights: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        votes(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        weights(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        whitelist(_token: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        whitelistGaugeRewards(_gauges: PromiseOrValue<string>[], _rewards: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    _ve(overrides?: CallOverrides): Promise<string>;
    attachTokenToGauge(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    base(overrides?: CallOverrides): Promise<string>;
    claimBribes(_bribes: PromiseOrValue<string>[], _tokens: PromiseOrValue<string>[][], _tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimFees(_fees: PromiseOrValue<string>[], _tokens: PromiseOrValue<string>[][], _tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimRewards(_gauges: PromiseOrValue<string>[], _tokens: PromiseOrValue<string>[][], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimable(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    createGauge(_pool: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    detachTokenFromGauge(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'distribute(address[])'(_gauges: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'distribute(address)'(_gauge: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'distribute(uint256,uint256)'(start: PromiseOrValue<BigNumberish>, finish: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'distribute()'(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    distributeFees(_gauges: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    distro(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    emergencyCouncil(overrides?: CallOverrides): Promise<string>;
    emitDeposit(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    emitWithdraw(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    factory(overrides?: CallOverrides): Promise<string>;
    feeDistributers(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    feeDistributorFactory(overrides?: CallOverrides): Promise<string>;
    gaugefactory(overrides?: CallOverrides): Promise<string>;
    gauges(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    getVotes(fromTokenId: PromiseOrValue<BigNumberish>, toTokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        string[][],
        BigNumber[][]
    ] & {
        tokensVotes: string[][];
        tokensWeights: BigNumber[][];
    }>;
    governor(overrides?: CallOverrides): Promise<string>;
    initialize(__ve: PromiseOrValue<string>, _factory: PromiseOrValue<string>, _gauges: PromiseOrValue<string>, _feeDistributorFactory: PromiseOrValue<string>, _minter: PromiseOrValue<string>, _msig: PromiseOrValue<string>, _tokens: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isAlive(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isGauge(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isWhitelisted(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    killGauge(_gauge: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    lastVoted(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    length(overrides?: CallOverrides): Promise<BigNumber>;
    minter(overrides?: CallOverrides): Promise<string>;
    notifyRewardAmount(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    poke(_tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    poolForGauge(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    poolVote(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    pools(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    removeGaugeRewards(_gauges: PromiseOrValue<string>[], _rewards: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    reset(_tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    resetVotes(fromTokenId: PromiseOrValue<BigNumberish>, toTokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    reviveGauge(_gauge: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setEmergencyCouncil(_council: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setGovernor(_governor: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    totalWeight(overrides?: CallOverrides): Promise<BigNumber>;
    updateAll(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateFor(_gauges: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateForRange(start: PromiseOrValue<BigNumberish>, end: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateGauge(_gauge: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    usedWeights(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    vote(tokenId: PromiseOrValue<BigNumberish>, _poolVote: PromiseOrValue<string>[], _weights: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    votes(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    weights(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    whitelist(_token: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    whitelistGaugeRewards(_gauges: PromiseOrValue<string>[], _rewards: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        _ve(overrides?: CallOverrides): Promise<string>;
        attachTokenToGauge(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        base(overrides?: CallOverrides): Promise<string>;
        claimBribes(_bribes: PromiseOrValue<string>[], _tokens: PromiseOrValue<string>[][], _tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        claimFees(_fees: PromiseOrValue<string>[], _tokens: PromiseOrValue<string>[][], _tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        claimRewards(_gauges: PromiseOrValue<string>[], _tokens: PromiseOrValue<string>[][], overrides?: CallOverrides): Promise<void>;
        claimable(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        createGauge(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        detachTokenFromGauge(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        'distribute(address[])'(_gauges: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        'distribute(address)'(_gauge: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        'distribute(uint256,uint256)'(start: PromiseOrValue<BigNumberish>, finish: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        'distribute()'(overrides?: CallOverrides): Promise<void>;
        distributeFees(_gauges: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        distro(overrides?: CallOverrides): Promise<void>;
        emergencyCouncil(overrides?: CallOverrides): Promise<string>;
        emitDeposit(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        emitWithdraw(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        factory(overrides?: CallOverrides): Promise<string>;
        feeDistributers(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        feeDistributorFactory(overrides?: CallOverrides): Promise<string>;
        gaugefactory(overrides?: CallOverrides): Promise<string>;
        gauges(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        getVotes(fromTokenId: PromiseOrValue<BigNumberish>, toTokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            string[][],
            BigNumber[][]
        ] & {
            tokensVotes: string[][];
            tokensWeights: BigNumber[][];
        }>;
        governor(overrides?: CallOverrides): Promise<string>;
        initialize(__ve: PromiseOrValue<string>, _factory: PromiseOrValue<string>, _gauges: PromiseOrValue<string>, _feeDistributorFactory: PromiseOrValue<string>, _minter: PromiseOrValue<string>, _msig: PromiseOrValue<string>, _tokens: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        isAlive(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isGauge(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isWhitelisted(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        killGauge(_gauge: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        lastVoted(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        length(overrides?: CallOverrides): Promise<BigNumber>;
        minter(overrides?: CallOverrides): Promise<string>;
        notifyRewardAmount(amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        poke(_tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        poolForGauge(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        poolVote(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        pools(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        removeGaugeRewards(_gauges: PromiseOrValue<string>[], _rewards: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        reset(_tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        resetVotes(fromTokenId: PromiseOrValue<BigNumberish>, toTokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        reviveGauge(_gauge: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setEmergencyCouncil(_council: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setGovernor(_governor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        totalWeight(overrides?: CallOverrides): Promise<BigNumber>;
        updateAll(overrides?: CallOverrides): Promise<void>;
        updateFor(_gauges: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        updateForRange(start: PromiseOrValue<BigNumberish>, end: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        updateGauge(_gauge: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        usedWeights(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        vote(tokenId: PromiseOrValue<BigNumberish>, _poolVote: PromiseOrValue<string>[], _weights: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<void>;
        votes(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        weights(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        whitelist(_token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        whitelistGaugeRewards(_gauges: PromiseOrValue<string>[], _rewards: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        'Abstained(uint256,uint256)'(tokenId?: null, weight?: null): AbstainedEventFilter;
        Abstained(tokenId?: null, weight?: null): AbstainedEventFilter;
        'Attach(address,address,uint256)'(owner?: PromiseOrValue<string> | null, gauge?: PromiseOrValue<string> | null, tokenId?: null): AttachEventFilter;
        Attach(owner?: PromiseOrValue<string> | null, gauge?: PromiseOrValue<string> | null, tokenId?: null): AttachEventFilter;
        'Deposit(address,address,uint256,uint256)'(lp?: PromiseOrValue<string> | null, gauge?: PromiseOrValue<string> | null, tokenId?: null, amount?: null): DepositEventFilter;
        Deposit(lp?: PromiseOrValue<string> | null, gauge?: PromiseOrValue<string> | null, tokenId?: null, amount?: null): DepositEventFilter;
        'Detach(address,address,uint256)'(owner?: PromiseOrValue<string> | null, gauge?: PromiseOrValue<string> | null, tokenId?: null): DetachEventFilter;
        Detach(owner?: PromiseOrValue<string> | null, gauge?: PromiseOrValue<string> | null, tokenId?: null): DetachEventFilter;
        'DistributeReward(address,address,uint256)'(sender?: PromiseOrValue<string> | null, gauge?: PromiseOrValue<string> | null, amount?: null): DistributeRewardEventFilter;
        DistributeReward(sender?: PromiseOrValue<string> | null, gauge?: PromiseOrValue<string> | null, amount?: null): DistributeRewardEventFilter;
        'GaugeCreated(address,address,address,address)'(gauge?: PromiseOrValue<string> | null, creator?: null, feeDistributer?: null, pool?: PromiseOrValue<string> | null): GaugeCreatedEventFilter;
        GaugeCreated(gauge?: PromiseOrValue<string> | null, creator?: null, feeDistributer?: null, pool?: PromiseOrValue<string> | null): GaugeCreatedEventFilter;
        'GaugeKilled(address)'(gauge?: PromiseOrValue<string> | null): GaugeKilledEventFilter;
        GaugeKilled(gauge?: PromiseOrValue<string> | null): GaugeKilledEventFilter;
        'GaugeRevived(address)'(gauge?: PromiseOrValue<string> | null): GaugeRevivedEventFilter;
        GaugeRevived(gauge?: PromiseOrValue<string> | null): GaugeRevivedEventFilter;
        'Initialized(uint8)'(version?: null): InitializedEventFilter;
        Initialized(version?: null): InitializedEventFilter;
        'NotifyReward(address,address,uint256)'(sender?: PromiseOrValue<string> | null, reward?: PromiseOrValue<string> | null, amount?: null): NotifyRewardEventFilter;
        NotifyReward(sender?: PromiseOrValue<string> | null, reward?: PromiseOrValue<string> | null, amount?: null): NotifyRewardEventFilter;
        'Voted(address,uint256,uint256)'(voter?: PromiseOrValue<string> | null, tokenId?: null, weight?: null): VotedEventFilter;
        Voted(voter?: PromiseOrValue<string> | null, tokenId?: null, weight?: null): VotedEventFilter;
        'Whitelisted(address,address)'(whitelister?: PromiseOrValue<string> | null, token?: PromiseOrValue<string> | null): WhitelistedEventFilter;
        Whitelisted(whitelister?: PromiseOrValue<string> | null, token?: PromiseOrValue<string> | null): WhitelistedEventFilter;
        'Withdraw(address,address,uint256,uint256)'(lp?: PromiseOrValue<string> | null, gauge?: PromiseOrValue<string> | null, tokenId?: null, amount?: null): WithdrawEventFilter;
        Withdraw(lp?: PromiseOrValue<string> | null, gauge?: PromiseOrValue<string> | null, tokenId?: null, amount?: null): WithdrawEventFilter;
    };
    estimateGas: {
        _ve(overrides?: CallOverrides): Promise<BigNumber>;
        attachTokenToGauge(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        base(overrides?: CallOverrides): Promise<BigNumber>;
        claimBribes(_bribes: PromiseOrValue<string>[], _tokens: PromiseOrValue<string>[][], _tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimFees(_fees: PromiseOrValue<string>[], _tokens: PromiseOrValue<string>[][], _tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimRewards(_gauges: PromiseOrValue<string>[], _tokens: PromiseOrValue<string>[][], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimable(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        createGauge(_pool: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        detachTokenFromGauge(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'distribute(address[])'(_gauges: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'distribute(address)'(_gauge: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'distribute(uint256,uint256)'(start: PromiseOrValue<BigNumberish>, finish: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'distribute()'(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        distributeFees(_gauges: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        distro(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        emergencyCouncil(overrides?: CallOverrides): Promise<BigNumber>;
        emitDeposit(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        emitWithdraw(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        factory(overrides?: CallOverrides): Promise<BigNumber>;
        feeDistributers(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        feeDistributorFactory(overrides?: CallOverrides): Promise<BigNumber>;
        gaugefactory(overrides?: CallOverrides): Promise<BigNumber>;
        gauges(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getVotes(fromTokenId: PromiseOrValue<BigNumberish>, toTokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        governor(overrides?: CallOverrides): Promise<BigNumber>;
        initialize(__ve: PromiseOrValue<string>, _factory: PromiseOrValue<string>, _gauges: PromiseOrValue<string>, _feeDistributorFactory: PromiseOrValue<string>, _minter: PromiseOrValue<string>, _msig: PromiseOrValue<string>, _tokens: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isAlive(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isGauge(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isWhitelisted(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        killGauge(_gauge: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        lastVoted(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        length(overrides?: CallOverrides): Promise<BigNumber>;
        minter(overrides?: CallOverrides): Promise<BigNumber>;
        notifyRewardAmount(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        poke(_tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        poolForGauge(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        poolVote(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        pools(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        removeGaugeRewards(_gauges: PromiseOrValue<string>[], _rewards: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        reset(_tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        resetVotes(fromTokenId: PromiseOrValue<BigNumberish>, toTokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        reviveGauge(_gauge: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setEmergencyCouncil(_council: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setGovernor(_governor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        totalWeight(overrides?: CallOverrides): Promise<BigNumber>;
        updateAll(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateFor(_gauges: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateForRange(start: PromiseOrValue<BigNumberish>, end: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateGauge(_gauge: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        usedWeights(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        vote(tokenId: PromiseOrValue<BigNumberish>, _poolVote: PromiseOrValue<string>[], _weights: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        votes(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        weights(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        whitelist(_token: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        whitelistGaugeRewards(_gauges: PromiseOrValue<string>[], _rewards: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        _ve(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        attachTokenToGauge(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        base(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claimBribes(_bribes: PromiseOrValue<string>[], _tokens: PromiseOrValue<string>[][], _tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimFees(_fees: PromiseOrValue<string>[], _tokens: PromiseOrValue<string>[][], _tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimRewards(_gauges: PromiseOrValue<string>[], _tokens: PromiseOrValue<string>[][], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimable(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        createGauge(_pool: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        detachTokenFromGauge(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'distribute(address[])'(_gauges: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'distribute(address)'(_gauge: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'distribute(uint256,uint256)'(start: PromiseOrValue<BigNumberish>, finish: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'distribute()'(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        distributeFees(_gauges: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        distro(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        emergencyCouncil(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        emitDeposit(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        emitWithdraw(tokenId: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        factory(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        feeDistributers(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        feeDistributorFactory(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        gaugefactory(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        gauges(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getVotes(fromTokenId: PromiseOrValue<BigNumberish>, toTokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        governor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initialize(__ve: PromiseOrValue<string>, _factory: PromiseOrValue<string>, _gauges: PromiseOrValue<string>, _feeDistributorFactory: PromiseOrValue<string>, _minter: PromiseOrValue<string>, _msig: PromiseOrValue<string>, _tokens: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isAlive(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isGauge(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isWhitelisted(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        killGauge(_gauge: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        lastVoted(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        length(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        minter(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        notifyRewardAmount(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        poke(_tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        poolForGauge(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolVote(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pools(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        removeGaugeRewards(_gauges: PromiseOrValue<string>[], _rewards: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        reset(_tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        resetVotes(fromTokenId: PromiseOrValue<BigNumberish>, toTokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        reviveGauge(_gauge: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setEmergencyCouncil(_council: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setGovernor(_governor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        totalWeight(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        updateAll(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateFor(_gauges: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateForRange(start: PromiseOrValue<BigNumberish>, end: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateGauge(_gauge: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        usedWeights(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        vote(tokenId: PromiseOrValue<BigNumberish>, _poolVote: PromiseOrValue<string>[], _weights: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        votes(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        weights(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        whitelist(_token: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        whitelistGaugeRewards(_gauges: PromiseOrValue<string>[], _rewards: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
