import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "../../common";
export declare namespace StakingRewardsMultiGauge {
    type LockedStakeStruct = {
        kek_id: BytesLike;
        start_timestamp: BigNumberish;
        liquidity: BigNumberish;
        ending_timestamp: BigNumberish;
        lock_multiplier: BigNumberish;
    };
    type LockedStakeStructOutput = [
        kek_id: string,
        start_timestamp: bigint,
        liquidity: bigint,
        ending_timestamp: bigint,
        lock_multiplier: bigint
    ] & {
        kek_id: string;
        start_timestamp: bigint;
        liquidity: bigint;
        ending_timestamp: bigint;
        lock_multiplier: bigint;
    };
}
export interface StakingRewardsMultiGaugeInterface extends Interface {
    getFunction(nameOrSignature: "MULTIPLIER_PRECISION" | "acceptOwnership" | "addMigrator" | "calcCurCombinedWeight" | "changeTokenManager" | "combinedWeightOf" | "earned" | "gaugeControllers" | "getAllRewardTokens" | "getReward" | "getRewardForDuration" | "getRewardSymbols" | "greylist" | "greylistAddress" | "isTokenManagerFor" | "lastUpdateTime" | "lockMultiplier" | "lock_max_multiplier" | "lock_time_for_max_multiplier" | "lock_time_min" | "lockedLiquidityOf" | "lockedStakesOf" | "migrationsOn" | "migrator_stakeLocked_for" | "migrator_withdraw_locked" | "minVeSumerForMaxBoost" | "owner" | "pendingOwner" | "periodFinish" | "recoverERC20" | "removeMigrator" | "renounceOwnership" | "rewardManagers" | "rewardRates" | "rewardRatesManual" | "rewardSymbols" | "rewardTokenAddrToIdx" | "rewardTokens" | "rewardsCollectionPaused" | "rewardsDuration" | "rewardsPerToken" | "rewards_distributor" | "setGaugeController" | "setLockedStakeTimeForMinAndMaxMultiplier" | "setMultipliers" | "setRewardRate" | "setRewardsDuration" | "stakeLocked" | "stakerAllowMigrator" | "stakerDisallowMigrator" | "staker_allowed_migrators" | "stakesUnlocked" | "stakingPaused" | "stakingToken" | "sync" | "sync_gauge_weights" | "toggleMigrations" | "toggleRewardsCollection" | "toggleStaking" | "toggleWithdrawals" | "totalCombinedWeight" | "totalLiquidityLocked" | "transferOwnership" | "unlockStakes" | "usdPerLPToken" | "usd_address" | "userStakedUsd" | "valid_migrators" | "veSumerMultiplier" | "veSumer_max_multiplier" | "veSumer_per_usd_for_max_boost" | "withdrawLocked" | "withdrawalsPaused"): FunctionFragment;
    getEvent(nameOrSignatureOrTopic: "LockedStakeMaxMultiplierUpdated" | "LockedStakeMinTime" | "LockedStakeTimeForMaxMultiplier" | "MaxVeSumerMultiplier" | "OwnershipTransferStarted" | "OwnershipTransferred" | "Recovered" | "RewardPaid" | "RewardsDurationUpdated" | "RewardsPeriodRenewed" | "StakeLocked" | "WithdrawLocked" | "veSumerPerUsdForMaxBoostUpdated"): EventFragment;
    encodeFunctionData(functionFragment: "MULTIPLIER_PRECISION", values?: undefined): string;
    encodeFunctionData(functionFragment: "acceptOwnership", values?: undefined): string;
    encodeFunctionData(functionFragment: "addMigrator", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "calcCurCombinedWeight", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "changeTokenManager", values: [AddressLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "combinedWeightOf", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "earned", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "gaugeControllers", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getAllRewardTokens", values?: undefined): string;
    encodeFunctionData(functionFragment: "getReward", values?: undefined): string;
    encodeFunctionData(functionFragment: "getRewardForDuration", values?: undefined): string;
    encodeFunctionData(functionFragment: "getRewardSymbols", values?: undefined): string;
    encodeFunctionData(functionFragment: "greylist", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "greylistAddress", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "isTokenManagerFor", values: [AddressLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "lastUpdateTime", values?: undefined): string;
    encodeFunctionData(functionFragment: "lockMultiplier", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "lock_max_multiplier", values?: undefined): string;
    encodeFunctionData(functionFragment: "lock_time_for_max_multiplier", values?: undefined): string;
    encodeFunctionData(functionFragment: "lock_time_min", values?: undefined): string;
    encodeFunctionData(functionFragment: "lockedLiquidityOf", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "lockedStakesOf", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "migrationsOn", values?: undefined): string;
    encodeFunctionData(functionFragment: "migrator_stakeLocked_for", values: [AddressLike, BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "migrator_withdraw_locked", values: [AddressLike, BytesLike]): string;
    encodeFunctionData(functionFragment: "minVeSumerForMaxBoost", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "owner", values?: undefined): string;
    encodeFunctionData(functionFragment: "pendingOwner", values?: undefined): string;
    encodeFunctionData(functionFragment: "periodFinish", values?: undefined): string;
    encodeFunctionData(functionFragment: "recoverERC20", values: [AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "removeMigrator", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string;
    encodeFunctionData(functionFragment: "rewardManagers", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "rewardRates", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "rewardRatesManual", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "rewardSymbols", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "rewardTokenAddrToIdx", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "rewardTokens", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "rewardsCollectionPaused", values?: undefined): string;
    encodeFunctionData(functionFragment: "rewardsDuration", values?: undefined): string;
    encodeFunctionData(functionFragment: "rewardsPerToken", values?: undefined): string;
    encodeFunctionData(functionFragment: "rewards_distributor", values?: undefined): string;
    encodeFunctionData(functionFragment: "setGaugeController", values: [AddressLike, AddressLike, AddressLike, boolean]): string;
    encodeFunctionData(functionFragment: "setLockedStakeTimeForMinAndMaxMultiplier", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "setMultipliers", values: [BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "setRewardRate", values: [AddressLike, BigNumberish, boolean]): string;
    encodeFunctionData(functionFragment: "setRewardsDuration", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "stakeLocked", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "stakerAllowMigrator", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "stakerDisallowMigrator", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "staker_allowed_migrators", values: [AddressLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "stakesUnlocked", values?: undefined): string;
    encodeFunctionData(functionFragment: "stakingPaused", values?: undefined): string;
    encodeFunctionData(functionFragment: "stakingToken", values?: undefined): string;
    encodeFunctionData(functionFragment: "sync", values?: undefined): string;
    encodeFunctionData(functionFragment: "sync_gauge_weights", values: [boolean]): string;
    encodeFunctionData(functionFragment: "toggleMigrations", values?: undefined): string;
    encodeFunctionData(functionFragment: "toggleRewardsCollection", values?: undefined): string;
    encodeFunctionData(functionFragment: "toggleStaking", values?: undefined): string;
    encodeFunctionData(functionFragment: "toggleWithdrawals", values?: undefined): string;
    encodeFunctionData(functionFragment: "totalCombinedWeight", values?: undefined): string;
    encodeFunctionData(functionFragment: "totalLiquidityLocked", values?: undefined): string;
    encodeFunctionData(functionFragment: "transferOwnership", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "unlockStakes", values?: undefined): string;
    encodeFunctionData(functionFragment: "usdPerLPToken", values?: undefined): string;
    encodeFunctionData(functionFragment: "usd_address", values?: undefined): string;
    encodeFunctionData(functionFragment: "userStakedUsd", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "valid_migrators", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "veSumerMultiplier", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "veSumer_max_multiplier", values?: undefined): string;
    encodeFunctionData(functionFragment: "veSumer_per_usd_for_max_boost", values?: undefined): string;
    encodeFunctionData(functionFragment: "withdrawLocked", values: [BytesLike]): string;
    encodeFunctionData(functionFragment: "withdrawalsPaused", values?: undefined): string;
    decodeFunctionResult(functionFragment: "MULTIPLIER_PRECISION", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "acceptOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "addMigrator", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "calcCurCombinedWeight", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "changeTokenManager", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "combinedWeightOf", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "earned", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "gaugeControllers", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAllRewardTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getReward", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRewardForDuration", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRewardSymbols", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "greylist", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "greylistAddress", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isTokenManagerFor", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "lastUpdateTime", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "lockMultiplier", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "lock_max_multiplier", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "lock_time_for_max_multiplier", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "lock_time_min", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "lockedLiquidityOf", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "lockedStakesOf", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "migrationsOn", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "migrator_stakeLocked_for", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "migrator_withdraw_locked", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "minVeSumerForMaxBoost", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pendingOwner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "periodFinish", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "recoverERC20", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "removeMigrator", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rewardManagers", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rewardRates", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rewardRatesManual", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rewardSymbols", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rewardTokenAddrToIdx", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rewardTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rewardsCollectionPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rewardsDuration", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rewardsPerToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rewards_distributor", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setGaugeController", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setLockedStakeTimeForMinAndMaxMultiplier", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setMultipliers", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setRewardRate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setRewardsDuration", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "stakeLocked", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "stakerAllowMigrator", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "stakerDisallowMigrator", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "staker_allowed_migrators", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "stakesUnlocked", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "stakingPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "stakingToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "sync", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "sync_gauge_weights", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "toggleMigrations", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "toggleRewardsCollection", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "toggleStaking", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "toggleWithdrawals", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "totalCombinedWeight", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "totalLiquidityLocked", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "unlockStakes", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "usdPerLPToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "usd_address", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "userStakedUsd", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "valid_migrators", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "veSumerMultiplier", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "veSumer_max_multiplier", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "veSumer_per_usd_for_max_boost", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdrawLocked", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdrawalsPaused", data: BytesLike): Result;
}
export declare namespace LockedStakeMaxMultiplierUpdatedEvent {
    type InputTuple = [multiplier: BigNumberish];
    type OutputTuple = [multiplier: bigint];
    interface OutputObject {
        multiplier: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace LockedStakeMinTimeEvent {
    type InputTuple = [secs: BigNumberish];
    type OutputTuple = [secs: bigint];
    interface OutputObject {
        secs: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace LockedStakeTimeForMaxMultiplierEvent {
    type InputTuple = [secs: BigNumberish];
    type OutputTuple = [secs: bigint];
    interface OutputObject {
        secs: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace MaxVeSumerMultiplierEvent {
    type InputTuple = [multiplier: BigNumberish];
    type OutputTuple = [multiplier: bigint];
    interface OutputObject {
        multiplier: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace OwnershipTransferStartedEvent {
    type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike];
    type OutputTuple = [previousOwner: string, newOwner: string];
    interface OutputObject {
        previousOwner: string;
        newOwner: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace OwnershipTransferredEvent {
    type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike];
    type OutputTuple = [previousOwner: string, newOwner: string];
    interface OutputObject {
        previousOwner: string;
        newOwner: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RecoveredEvent {
    type InputTuple = [
        destination_address: AddressLike,
        token: AddressLike,
        amount: BigNumberish
    ];
    type OutputTuple = [
        destination_address: string,
        token: string,
        amount: bigint
    ];
    interface OutputObject {
        destination_address: string;
        token: string;
        amount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RewardPaidEvent {
    type InputTuple = [
        user: AddressLike,
        reward: BigNumberish,
        token_address: AddressLike,
        destination_address: AddressLike
    ];
    type OutputTuple = [
        user: string,
        reward: bigint,
        token_address: string,
        destination_address: string
    ];
    interface OutputObject {
        user: string;
        reward: bigint;
        token_address: string;
        destination_address: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RewardsDurationUpdatedEvent {
    type InputTuple = [newDuration: BigNumberish];
    type OutputTuple = [newDuration: bigint];
    interface OutputObject {
        newDuration: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RewardsPeriodRenewedEvent {
    type InputTuple = [token: AddressLike];
    type OutputTuple = [token: string];
    interface OutputObject {
        token: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace StakeLockedEvent {
    type InputTuple = [
        user: AddressLike,
        amount: BigNumberish,
        secs: BigNumberish,
        kek_id: BytesLike,
        source_address: AddressLike
    ];
    type OutputTuple = [
        user: string,
        amount: bigint,
        secs: bigint,
        kek_id: string,
        source_address: string
    ];
    interface OutputObject {
        user: string;
        amount: bigint;
        secs: bigint;
        kek_id: string;
        source_address: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace WithdrawLockedEvent {
    type InputTuple = [
        user: AddressLike,
        amount: BigNumberish,
        kek_id: BytesLike,
        destination_address: AddressLike
    ];
    type OutputTuple = [
        user: string,
        amount: bigint,
        kek_id: string,
        destination_address: string
    ];
    interface OutputObject {
        user: string;
        amount: bigint;
        kek_id: string;
        destination_address: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace veSumerPerUsdForMaxBoostUpdatedEvent {
    type InputTuple = [scale_factor: BigNumberish];
    type OutputTuple = [scale_factor: bigint];
    interface OutputObject {
        scale_factor: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export interface StakingRewardsMultiGauge extends BaseContract {
    connect(runner?: ContractRunner | null): StakingRewardsMultiGauge;
    waitForDeployment(): Promise<this>;
    interface: StakingRewardsMultiGaugeInterface;
    queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
    queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
    on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
    on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
    once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
    once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
    listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
    listeners(eventName?: string): Promise<Array<Listener>>;
    removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
    MULTIPLIER_PRECISION: TypedContractMethod<[], [bigint], "view">;
    acceptOwnership: TypedContractMethod<[], [void], "nonpayable">;
    addMigrator: TypedContractMethod<[
        migrator_address: AddressLike
    ], [
        void
    ], "nonpayable">;
    calcCurCombinedWeight: TypedContractMethod<[
        account: AddressLike
    ], [
        [
            bigint,
            bigint,
            bigint
        ] & {
            old_combined_weight: bigint;
            new_veSumer_multiplier: bigint;
            new_combined_weight: bigint;
        }
    ], "view">;
    changeTokenManager: TypedContractMethod<[
        reward_token_address: AddressLike,
        new_manager_address: AddressLike
    ], [
        void
    ], "nonpayable">;
    combinedWeightOf: TypedContractMethod<[
        account: AddressLike
    ], [
        bigint
    ], "view">;
    earned: TypedContractMethod<[account: AddressLike], [bigint[]], "view">;
    gaugeControllers: TypedContractMethod<[arg0: BigNumberish], [string], "view">;
    getAllRewardTokens: TypedContractMethod<[], [string[]], "view">;
    getReward: TypedContractMethod<[], [bigint[]], "nonpayable">;
    getRewardForDuration: TypedContractMethod<[], [bigint[]], "view">;
    getRewardSymbols: TypedContractMethod<[], [string[]], "view">;
    greylist: TypedContractMethod<[arg0: AddressLike], [boolean], "view">;
    greylistAddress: TypedContractMethod<[
        _address: AddressLike
    ], [
        void
    ], "nonpayable">;
    isTokenManagerFor: TypedContractMethod<[
        caller_addr: AddressLike,
        reward_token_addr: AddressLike
    ], [
        boolean
    ], "view">;
    lastUpdateTime: TypedContractMethod<[], [bigint], "view">;
    lockMultiplier: TypedContractMethod<[secs: BigNumberish], [bigint], "view">;
    lock_max_multiplier: TypedContractMethod<[], [bigint], "view">;
    lock_time_for_max_multiplier: TypedContractMethod<[], [bigint], "view">;
    lock_time_min: TypedContractMethod<[], [bigint], "view">;
    lockedLiquidityOf: TypedContractMethod<[
        account: AddressLike
    ], [
        bigint
    ], "view">;
    lockedStakesOf: TypedContractMethod<[
        account: AddressLike
    ], [
        StakingRewardsMultiGauge.LockedStakeStructOutput[]
    ], "view">;
    migrationsOn: TypedContractMethod<[], [boolean], "view">;
    migrator_stakeLocked_for: TypedContractMethod<[
        staker_address: AddressLike,
        amount: BigNumberish,
        secs: BigNumberish,
        start_timestamp: BigNumberish
    ], [
        void
    ], "nonpayable">;
    migrator_withdraw_locked: TypedContractMethod<[
        staker_address: AddressLike,
        kek_id: BytesLike
    ], [
        void
    ], "nonpayable">;
    minVeSumerForMaxBoost: TypedContractMethod<[
        account: AddressLike
    ], [
        bigint
    ], "view">;
    owner: TypedContractMethod<[], [string], "view">;
    pendingOwner: TypedContractMethod<[], [string], "view">;
    periodFinish: TypedContractMethod<[], [bigint], "view">;
    recoverERC20: TypedContractMethod<[
        tokenAddress: AddressLike,
        tokenAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    removeMigrator: TypedContractMethod<[
        migrator_address: AddressLike
    ], [
        void
    ], "nonpayable">;
    renounceOwnership: TypedContractMethod<[], [void], "nonpayable">;
    rewardManagers: TypedContractMethod<[arg0: AddressLike], [string], "view">;
    rewardRates: TypedContractMethod<[token_idx: BigNumberish], [bigint], "view">;
    rewardRatesManual: TypedContractMethod<[
        arg0: BigNumberish
    ], [
        bigint
    ], "view">;
    rewardSymbols: TypedContractMethod<[arg0: BigNumberish], [string], "view">;
    rewardTokenAddrToIdx: TypedContractMethod<[
        arg0: AddressLike
    ], [
        bigint
    ], "view">;
    rewardTokens: TypedContractMethod<[arg0: BigNumberish], [string], "view">;
    rewardsCollectionPaused: TypedContractMethod<[], [boolean], "view">;
    rewardsDuration: TypedContractMethod<[], [bigint], "view">;
    rewardsPerToken: TypedContractMethod<[], [bigint[]], "view">;
    rewards_distributor: TypedContractMethod<[], [string], "view">;
    setGaugeController: TypedContractMethod<[
        reward_token_address: AddressLike,
        _rewards_distributor_address: AddressLike,
        _gauge_controller_address: AddressLike,
        sync_too: boolean
    ], [
        void
    ], "nonpayable">;
    setLockedStakeTimeForMinAndMaxMultiplier: TypedContractMethod<[
        _lock_time_for_max_multiplier: BigNumberish,
        _lock_time_min: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setMultipliers: TypedContractMethod<[
        _lock_max_multiplier: BigNumberish,
        _veSumer_max_multiplier: BigNumberish,
        _veSumer_per_usd_for_max_boost: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setRewardRate: TypedContractMethod<[
        reward_token_address: AddressLike,
        new_rate: BigNumberish,
        sync_too: boolean
    ], [
        void
    ], "nonpayable">;
    setRewardsDuration: TypedContractMethod<[
        _rewardsDuration: BigNumberish
    ], [
        void
    ], "nonpayable">;
    stakeLocked: TypedContractMethod<[
        liquidity: BigNumberish,
        secs: BigNumberish
    ], [
        void
    ], "nonpayable">;
    stakerAllowMigrator: TypedContractMethod<[
        migrator_address: AddressLike
    ], [
        void
    ], "nonpayable">;
    stakerDisallowMigrator: TypedContractMethod<[
        migrator_address: AddressLike
    ], [
        void
    ], "nonpayable">;
    staker_allowed_migrators: TypedContractMethod<[
        arg0: AddressLike,
        arg1: AddressLike
    ], [
        boolean
    ], "view">;
    stakesUnlocked: TypedContractMethod<[], [boolean], "view">;
    stakingPaused: TypedContractMethod<[], [boolean], "view">;
    stakingToken: TypedContractMethod<[], [string], "view">;
    sync: TypedContractMethod<[], [void], "nonpayable">;
    sync_gauge_weights: TypedContractMethod<[
        force_update: boolean
    ], [
        void
    ], "nonpayable">;
    toggleMigrations: TypedContractMethod<[], [void], "nonpayable">;
    toggleRewardsCollection: TypedContractMethod<[], [void], "nonpayable">;
    toggleStaking: TypedContractMethod<[], [void], "nonpayable">;
    toggleWithdrawals: TypedContractMethod<[], [void], "nonpayable">;
    totalCombinedWeight: TypedContractMethod<[], [bigint], "view">;
    totalLiquidityLocked: TypedContractMethod<[], [bigint], "view">;
    transferOwnership: TypedContractMethod<[
        newOwner: AddressLike
    ], [
        void
    ], "nonpayable">;
    unlockStakes: TypedContractMethod<[], [void], "nonpayable">;
    usdPerLPToken: TypedContractMethod<[], [bigint], "view">;
    usd_address: TypedContractMethod<[], [string], "view">;
    userStakedUsd: TypedContractMethod<[account: AddressLike], [bigint], "view">;
    valid_migrators: TypedContractMethod<[arg0: AddressLike], [boolean], "view">;
    veSumerMultiplier: TypedContractMethod<[
        account: AddressLike
    ], [
        bigint
    ], "view">;
    veSumer_max_multiplier: TypedContractMethod<[], [bigint], "view">;
    veSumer_per_usd_for_max_boost: TypedContractMethod<[], [bigint], "view">;
    withdrawLocked: TypedContractMethod<[
        kek_id: BytesLike
    ], [
        void
    ], "nonpayable">;
    withdrawalsPaused: TypedContractMethod<[], [boolean], "view">;
    getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
    getFunction(nameOrSignature: "MULTIPLIER_PRECISION"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "acceptOwnership"): TypedContractMethod<[], [void], "nonpayable">;
    getFunction(nameOrSignature: "addMigrator"): TypedContractMethod<[migrator_address: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "calcCurCombinedWeight"): TypedContractMethod<[
        account: AddressLike
    ], [
        [
            bigint,
            bigint,
            bigint
        ] & {
            old_combined_weight: bigint;
            new_veSumer_multiplier: bigint;
            new_combined_weight: bigint;
        }
    ], "view">;
    getFunction(nameOrSignature: "changeTokenManager"): TypedContractMethod<[
        reward_token_address: AddressLike,
        new_manager_address: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "combinedWeightOf"): TypedContractMethod<[account: AddressLike], [bigint], "view">;
    getFunction(nameOrSignature: "earned"): TypedContractMethod<[account: AddressLike], [bigint[]], "view">;
    getFunction(nameOrSignature: "gaugeControllers"): TypedContractMethod<[arg0: BigNumberish], [string], "view">;
    getFunction(nameOrSignature: "getAllRewardTokens"): TypedContractMethod<[], [string[]], "view">;
    getFunction(nameOrSignature: "getReward"): TypedContractMethod<[], [bigint[]], "nonpayable">;
    getFunction(nameOrSignature: "getRewardForDuration"): TypedContractMethod<[], [bigint[]], "view">;
    getFunction(nameOrSignature: "getRewardSymbols"): TypedContractMethod<[], [string[]], "view">;
    getFunction(nameOrSignature: "greylist"): TypedContractMethod<[arg0: AddressLike], [boolean], "view">;
    getFunction(nameOrSignature: "greylistAddress"): TypedContractMethod<[_address: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "isTokenManagerFor"): TypedContractMethod<[
        caller_addr: AddressLike,
        reward_token_addr: AddressLike
    ], [
        boolean
    ], "view">;
    getFunction(nameOrSignature: "lastUpdateTime"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "lockMultiplier"): TypedContractMethod<[secs: BigNumberish], [bigint], "view">;
    getFunction(nameOrSignature: "lock_max_multiplier"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "lock_time_for_max_multiplier"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "lock_time_min"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "lockedLiquidityOf"): TypedContractMethod<[account: AddressLike], [bigint], "view">;
    getFunction(nameOrSignature: "lockedStakesOf"): TypedContractMethod<[
        account: AddressLike
    ], [
        StakingRewardsMultiGauge.LockedStakeStructOutput[]
    ], "view">;
    getFunction(nameOrSignature: "migrationsOn"): TypedContractMethod<[], [boolean], "view">;
    getFunction(nameOrSignature: "migrator_stakeLocked_for"): TypedContractMethod<[
        staker_address: AddressLike,
        amount: BigNumberish,
        secs: BigNumberish,
        start_timestamp: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "migrator_withdraw_locked"): TypedContractMethod<[
        staker_address: AddressLike,
        kek_id: BytesLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "minVeSumerForMaxBoost"): TypedContractMethod<[account: AddressLike], [bigint], "view">;
    getFunction(nameOrSignature: "owner"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "pendingOwner"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "periodFinish"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "recoverERC20"): TypedContractMethod<[
        tokenAddress: AddressLike,
        tokenAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "removeMigrator"): TypedContractMethod<[migrator_address: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "renounceOwnership"): TypedContractMethod<[], [void], "nonpayable">;
    getFunction(nameOrSignature: "rewardManagers"): TypedContractMethod<[arg0: AddressLike], [string], "view">;
    getFunction(nameOrSignature: "rewardRates"): TypedContractMethod<[token_idx: BigNumberish], [bigint], "view">;
    getFunction(nameOrSignature: "rewardRatesManual"): TypedContractMethod<[arg0: BigNumberish], [bigint], "view">;
    getFunction(nameOrSignature: "rewardSymbols"): TypedContractMethod<[arg0: BigNumberish], [string], "view">;
    getFunction(nameOrSignature: "rewardTokenAddrToIdx"): TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
    getFunction(nameOrSignature: "rewardTokens"): TypedContractMethod<[arg0: BigNumberish], [string], "view">;
    getFunction(nameOrSignature: "rewardsCollectionPaused"): TypedContractMethod<[], [boolean], "view">;
    getFunction(nameOrSignature: "rewardsDuration"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "rewardsPerToken"): TypedContractMethod<[], [bigint[]], "view">;
    getFunction(nameOrSignature: "rewards_distributor"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "setGaugeController"): TypedContractMethod<[
        reward_token_address: AddressLike,
        _rewards_distributor_address: AddressLike,
        _gauge_controller_address: AddressLike,
        sync_too: boolean
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setLockedStakeTimeForMinAndMaxMultiplier"): TypedContractMethod<[
        _lock_time_for_max_multiplier: BigNumberish,
        _lock_time_min: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setMultipliers"): TypedContractMethod<[
        _lock_max_multiplier: BigNumberish,
        _veSumer_max_multiplier: BigNumberish,
        _veSumer_per_usd_for_max_boost: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setRewardRate"): TypedContractMethod<[
        reward_token_address: AddressLike,
        new_rate: BigNumberish,
        sync_too: boolean
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setRewardsDuration"): TypedContractMethod<[
        _rewardsDuration: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "stakeLocked"): TypedContractMethod<[
        liquidity: BigNumberish,
        secs: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "stakerAllowMigrator"): TypedContractMethod<[migrator_address: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "stakerDisallowMigrator"): TypedContractMethod<[migrator_address: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "staker_allowed_migrators"): TypedContractMethod<[
        arg0: AddressLike,
        arg1: AddressLike
    ], [
        boolean
    ], "view">;
    getFunction(nameOrSignature: "stakesUnlocked"): TypedContractMethod<[], [boolean], "view">;
    getFunction(nameOrSignature: "stakingPaused"): TypedContractMethod<[], [boolean], "view">;
    getFunction(nameOrSignature: "stakingToken"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "sync"): TypedContractMethod<[], [void], "nonpayable">;
    getFunction(nameOrSignature: "sync_gauge_weights"): TypedContractMethod<[force_update: boolean], [void], "nonpayable">;
    getFunction(nameOrSignature: "toggleMigrations"): TypedContractMethod<[], [void], "nonpayable">;
    getFunction(nameOrSignature: "toggleRewardsCollection"): TypedContractMethod<[], [void], "nonpayable">;
    getFunction(nameOrSignature: "toggleStaking"): TypedContractMethod<[], [void], "nonpayable">;
    getFunction(nameOrSignature: "toggleWithdrawals"): TypedContractMethod<[], [void], "nonpayable">;
    getFunction(nameOrSignature: "totalCombinedWeight"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "totalLiquidityLocked"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "transferOwnership"): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "unlockStakes"): TypedContractMethod<[], [void], "nonpayable">;
    getFunction(nameOrSignature: "usdPerLPToken"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "usd_address"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "userStakedUsd"): TypedContractMethod<[account: AddressLike], [bigint], "view">;
    getFunction(nameOrSignature: "valid_migrators"): TypedContractMethod<[arg0: AddressLike], [boolean], "view">;
    getFunction(nameOrSignature: "veSumerMultiplier"): TypedContractMethod<[account: AddressLike], [bigint], "view">;
    getFunction(nameOrSignature: "veSumer_max_multiplier"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "veSumer_per_usd_for_max_boost"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "withdrawLocked"): TypedContractMethod<[kek_id: BytesLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "withdrawalsPaused"): TypedContractMethod<[], [boolean], "view">;
    getEvent(key: "LockedStakeMaxMultiplierUpdated"): TypedContractEvent<LockedStakeMaxMultiplierUpdatedEvent.InputTuple, LockedStakeMaxMultiplierUpdatedEvent.OutputTuple, LockedStakeMaxMultiplierUpdatedEvent.OutputObject>;
    getEvent(key: "LockedStakeMinTime"): TypedContractEvent<LockedStakeMinTimeEvent.InputTuple, LockedStakeMinTimeEvent.OutputTuple, LockedStakeMinTimeEvent.OutputObject>;
    getEvent(key: "LockedStakeTimeForMaxMultiplier"): TypedContractEvent<LockedStakeTimeForMaxMultiplierEvent.InputTuple, LockedStakeTimeForMaxMultiplierEvent.OutputTuple, LockedStakeTimeForMaxMultiplierEvent.OutputObject>;
    getEvent(key: "MaxVeSumerMultiplier"): TypedContractEvent<MaxVeSumerMultiplierEvent.InputTuple, MaxVeSumerMultiplierEvent.OutputTuple, MaxVeSumerMultiplierEvent.OutputObject>;
    getEvent(key: "OwnershipTransferStarted"): TypedContractEvent<OwnershipTransferStartedEvent.InputTuple, OwnershipTransferStartedEvent.OutputTuple, OwnershipTransferStartedEvent.OutputObject>;
    getEvent(key: "OwnershipTransferred"): TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
    getEvent(key: "Recovered"): TypedContractEvent<RecoveredEvent.InputTuple, RecoveredEvent.OutputTuple, RecoveredEvent.OutputObject>;
    getEvent(key: "RewardPaid"): TypedContractEvent<RewardPaidEvent.InputTuple, RewardPaidEvent.OutputTuple, RewardPaidEvent.OutputObject>;
    getEvent(key: "RewardsDurationUpdated"): TypedContractEvent<RewardsDurationUpdatedEvent.InputTuple, RewardsDurationUpdatedEvent.OutputTuple, RewardsDurationUpdatedEvent.OutputObject>;
    getEvent(key: "RewardsPeriodRenewed"): TypedContractEvent<RewardsPeriodRenewedEvent.InputTuple, RewardsPeriodRenewedEvent.OutputTuple, RewardsPeriodRenewedEvent.OutputObject>;
    getEvent(key: "StakeLocked"): TypedContractEvent<StakeLockedEvent.InputTuple, StakeLockedEvent.OutputTuple, StakeLockedEvent.OutputObject>;
    getEvent(key: "WithdrawLocked"): TypedContractEvent<WithdrawLockedEvent.InputTuple, WithdrawLockedEvent.OutputTuple, WithdrawLockedEvent.OutputObject>;
    getEvent(key: "veSumerPerUsdForMaxBoostUpdated"): TypedContractEvent<veSumerPerUsdForMaxBoostUpdatedEvent.InputTuple, veSumerPerUsdForMaxBoostUpdatedEvent.OutputTuple, veSumerPerUsdForMaxBoostUpdatedEvent.OutputObject>;
    filters: {
        "LockedStakeMaxMultiplierUpdated(uint256)": TypedContractEvent<LockedStakeMaxMultiplierUpdatedEvent.InputTuple, LockedStakeMaxMultiplierUpdatedEvent.OutputTuple, LockedStakeMaxMultiplierUpdatedEvent.OutputObject>;
        LockedStakeMaxMultiplierUpdated: TypedContractEvent<LockedStakeMaxMultiplierUpdatedEvent.InputTuple, LockedStakeMaxMultiplierUpdatedEvent.OutputTuple, LockedStakeMaxMultiplierUpdatedEvent.OutputObject>;
        "LockedStakeMinTime(uint256)": TypedContractEvent<LockedStakeMinTimeEvent.InputTuple, LockedStakeMinTimeEvent.OutputTuple, LockedStakeMinTimeEvent.OutputObject>;
        LockedStakeMinTime: TypedContractEvent<LockedStakeMinTimeEvent.InputTuple, LockedStakeMinTimeEvent.OutputTuple, LockedStakeMinTimeEvent.OutputObject>;
        "LockedStakeTimeForMaxMultiplier(uint256)": TypedContractEvent<LockedStakeTimeForMaxMultiplierEvent.InputTuple, LockedStakeTimeForMaxMultiplierEvent.OutputTuple, LockedStakeTimeForMaxMultiplierEvent.OutputObject>;
        LockedStakeTimeForMaxMultiplier: TypedContractEvent<LockedStakeTimeForMaxMultiplierEvent.InputTuple, LockedStakeTimeForMaxMultiplierEvent.OutputTuple, LockedStakeTimeForMaxMultiplierEvent.OutputObject>;
        "MaxVeSumerMultiplier(uint256)": TypedContractEvent<MaxVeSumerMultiplierEvent.InputTuple, MaxVeSumerMultiplierEvent.OutputTuple, MaxVeSumerMultiplierEvent.OutputObject>;
        MaxVeSumerMultiplier: TypedContractEvent<MaxVeSumerMultiplierEvent.InputTuple, MaxVeSumerMultiplierEvent.OutputTuple, MaxVeSumerMultiplierEvent.OutputObject>;
        "OwnershipTransferStarted(address,address)": TypedContractEvent<OwnershipTransferStartedEvent.InputTuple, OwnershipTransferStartedEvent.OutputTuple, OwnershipTransferStartedEvent.OutputObject>;
        OwnershipTransferStarted: TypedContractEvent<OwnershipTransferStartedEvent.InputTuple, OwnershipTransferStartedEvent.OutputTuple, OwnershipTransferStartedEvent.OutputObject>;
        "OwnershipTransferred(address,address)": TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
        OwnershipTransferred: TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
        "Recovered(address,address,uint256)": TypedContractEvent<RecoveredEvent.InputTuple, RecoveredEvent.OutputTuple, RecoveredEvent.OutputObject>;
        Recovered: TypedContractEvent<RecoveredEvent.InputTuple, RecoveredEvent.OutputTuple, RecoveredEvent.OutputObject>;
        "RewardPaid(address,uint256,address,address)": TypedContractEvent<RewardPaidEvent.InputTuple, RewardPaidEvent.OutputTuple, RewardPaidEvent.OutputObject>;
        RewardPaid: TypedContractEvent<RewardPaidEvent.InputTuple, RewardPaidEvent.OutputTuple, RewardPaidEvent.OutputObject>;
        "RewardsDurationUpdated(uint256)": TypedContractEvent<RewardsDurationUpdatedEvent.InputTuple, RewardsDurationUpdatedEvent.OutputTuple, RewardsDurationUpdatedEvent.OutputObject>;
        RewardsDurationUpdated: TypedContractEvent<RewardsDurationUpdatedEvent.InputTuple, RewardsDurationUpdatedEvent.OutputTuple, RewardsDurationUpdatedEvent.OutputObject>;
        "RewardsPeriodRenewed(address)": TypedContractEvent<RewardsPeriodRenewedEvent.InputTuple, RewardsPeriodRenewedEvent.OutputTuple, RewardsPeriodRenewedEvent.OutputObject>;
        RewardsPeriodRenewed: TypedContractEvent<RewardsPeriodRenewedEvent.InputTuple, RewardsPeriodRenewedEvent.OutputTuple, RewardsPeriodRenewedEvent.OutputObject>;
        "StakeLocked(address,uint256,uint256,bytes32,address)": TypedContractEvent<StakeLockedEvent.InputTuple, StakeLockedEvent.OutputTuple, StakeLockedEvent.OutputObject>;
        StakeLocked: TypedContractEvent<StakeLockedEvent.InputTuple, StakeLockedEvent.OutputTuple, StakeLockedEvent.OutputObject>;
        "WithdrawLocked(address,uint256,bytes32,address)": TypedContractEvent<WithdrawLockedEvent.InputTuple, WithdrawLockedEvent.OutputTuple, WithdrawLockedEvent.OutputObject>;
        WithdrawLocked: TypedContractEvent<WithdrawLockedEvent.InputTuple, WithdrawLockedEvent.OutputTuple, WithdrawLockedEvent.OutputObject>;
        "veSumerPerUsdForMaxBoostUpdated(uint256)": TypedContractEvent<veSumerPerUsdForMaxBoostUpdatedEvent.InputTuple, veSumerPerUsdForMaxBoostUpdatedEvent.OutputTuple, veSumerPerUsdForMaxBoostUpdatedEvent.OutputObject>;
        veSumerPerUsdForMaxBoostUpdated: TypedContractEvent<veSumerPerUsdForMaxBoostUpdatedEvent.InputTuple, veSumerPerUsdForMaxBoostUpdatedEvent.OutputTuple, veSumerPerUsdForMaxBoostUpdatedEvent.OutputObject>;
    };
}
