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 RamsesBribeInterface extends utils.Interface {
    functions: {
        'WEEK()': FunctionFragment;
        '_deposit(uint256,uint256)': FunctionFragment;
        '_ve()': FunctionFragment;
        '_withdraw(uint256,uint256)': FunctionFragment;
        'balanceOf(uint256)': FunctionFragment;
        'bribe(address,uint256)': FunctionFragment;
        'earned(address,uint256)': FunctionFragment;
        'firstPeriod()': FunctionFragment;
        'getPeriod()': FunctionFragment;
        'getPeriodReward(uint256,uint256,address)': FunctionFragment;
        'getReward(uint256,address[])': FunctionFragment;
        'getRewardForOwner(uint256,address[])': FunctionFragment;
        'getRewardTokens()': FunctionFragment;
        'initialize(address)': FunctionFragment;
        'isReward(address)': FunctionFragment;
        'lastClaimByToken(address,uint256)': FunctionFragment;
        'notifyRewardAmount(address,uint256)': FunctionFragment;
        'rewards(uint256)': FunctionFragment;
        'tokenTotalSupplyByPeriod(uint256,address)': FunctionFragment;
        'totalVeShareByPeriod(uint256)': FunctionFragment;
        'veShareByPeriod(uint256,uint256)': FunctionFragment;
        'veWithdrawnTokenAmountByPeriod(uint256,uint256,address)': FunctionFragment;
        'voter()': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'WEEK' | '_deposit' | '_ve' | '_withdraw' | 'balanceOf' | 'bribe' | 'earned' | 'firstPeriod' | 'getPeriod' | 'getPeriodReward' | 'getReward' | 'getRewardForOwner' | 'getRewardTokens' | 'initialize' | 'isReward' | 'lastClaimByToken' | 'notifyRewardAmount' | 'rewards' | 'tokenTotalSupplyByPeriod' | 'totalVeShareByPeriod' | 'veShareByPeriod' | 'veWithdrawnTokenAmountByPeriod' | 'voter'): FunctionFragment;
    encodeFunctionData(functionFragment: 'WEEK', values?: undefined): string;
    encodeFunctionData(functionFragment: '_deposit', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: '_ve', values?: undefined): string;
    encodeFunctionData(functionFragment: '_withdraw', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'bribe', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'earned', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'firstPeriod', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getPeriod', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getPeriodReward', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getReward', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'getRewardForOwner', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'getRewardTokens', values?: undefined): string;
    encodeFunctionData(functionFragment: 'initialize', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isReward', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'lastClaimByToken', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'notifyRewardAmount', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'rewards', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'tokenTotalSupplyByPeriod', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'totalVeShareByPeriod', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'veShareByPeriod', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'veWithdrawnTokenAmountByPeriod', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'voter', values?: undefined): string;
    decodeFunctionResult(functionFragment: 'WEEK', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: '_deposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: '_ve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: '_withdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'bribe', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'earned', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'firstPeriod', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPeriod', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPeriodReward', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getReward', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRewardForOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRewardTokens', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isReward', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lastClaimByToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'notifyRewardAmount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'rewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'tokenTotalSupplyByPeriod', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalVeShareByPeriod', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'veShareByPeriod', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'veWithdrawnTokenAmountByPeriod', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'voter', data: BytesLike): Result;
    events: {
        'ClaimRewards(uint256,uint256,address,address,uint256)': EventFragment;
        'Deposit(address,uint256,uint256)': EventFragment;
        'Initialized(uint8)': EventFragment;
        'NotifyReward(address,address,uint256)': EventFragment;
        'Withdraw(address,uint256,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'ClaimRewards'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Deposit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Initialized'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'NotifyReward'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Withdraw'): EventFragment;
}
export interface ClaimRewardsEventObject {
    period: BigNumber;
    tokenId: BigNumber;
    receiver: string;
    reward: string;
    amount: BigNumber;
}
export declare type ClaimRewardsEvent = TypedEvent<[BigNumber, BigNumber, string, string, BigNumber], ClaimRewardsEventObject>;
export declare type ClaimRewardsEventFilter = TypedEventFilter<ClaimRewardsEvent>;
export interface DepositEventObject {
    from: string;
    tokenId: BigNumber;
    amount: BigNumber;
}
export declare type DepositEvent = TypedEvent<[string, BigNumber, BigNumber], DepositEventObject>;
export declare type DepositEventFilter = TypedEventFilter<DepositEvent>;
export interface InitializedEventObject {
    version: number;
}
export declare type InitializedEvent = TypedEvent<[number], InitializedEventObject>;
export declare type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
export interface NotifyRewardEventObject {
    from: string;
    reward: string;
    amount: BigNumber;
}
export declare type NotifyRewardEvent = TypedEvent<[string, string, BigNumber], NotifyRewardEventObject>;
export declare type NotifyRewardEventFilter = TypedEventFilter<NotifyRewardEvent>;
export interface WithdrawEventObject {
    from: string;
    tokenId: BigNumber;
    amount: BigNumber;
}
export declare type WithdrawEvent = TypedEvent<[string, BigNumber, BigNumber], WithdrawEventObject>;
export declare type WithdrawEventFilter = TypedEventFilter<WithdrawEvent>;
export interface RamsesBribe extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: RamsesBribeInterface;
    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: {
        WEEK(overrides?: CallOverrides): Promise<[BigNumber]>;
        _deposit(amount: PromiseOrValue<BigNumberish>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        _ve(overrides?: CallOverrides): Promise<[string]>;
        _withdraw(amount: PromiseOrValue<BigNumberish>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        balanceOf(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        bribe(token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        earned(token: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            reward: BigNumber;
        }>;
        firstPeriod(overrides?: CallOverrides): Promise<[BigNumber]>;
        getPeriod(overrides?: CallOverrides): Promise<[BigNumber]>;
        getPeriodReward(period: PromiseOrValue<BigNumberish>, tokenId: PromiseOrValue<BigNumberish>, token: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getReward(tokenId: PromiseOrValue<BigNumberish>, tokens: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getRewardForOwner(tokenId: PromiseOrValue<BigNumberish>, tokens: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getRewardTokens(overrides?: CallOverrides): Promise<[string[]]>;
        initialize(_voter: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isReward(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        lastClaimByToken(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        notifyRewardAmount(token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        rewards(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        tokenTotalSupplyByPeriod(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalVeShareByPeriod(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        veShareByPeriod(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        veWithdrawnTokenAmountByPeriod(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, arg2: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        voter(overrides?: CallOverrides): Promise<[string]>;
    };
    WEEK(overrides?: CallOverrides): Promise<BigNumber>;
    _deposit(amount: PromiseOrValue<BigNumberish>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    _ve(overrides?: CallOverrides): Promise<string>;
    _withdraw(amount: PromiseOrValue<BigNumberish>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    balanceOf(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    bribe(token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    earned(token: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    firstPeriod(overrides?: CallOverrides): Promise<BigNumber>;
    getPeriod(overrides?: CallOverrides): Promise<BigNumber>;
    getPeriodReward(period: PromiseOrValue<BigNumberish>, tokenId: PromiseOrValue<BigNumberish>, token: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getReward(tokenId: PromiseOrValue<BigNumberish>, tokens: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getRewardForOwner(tokenId: PromiseOrValue<BigNumberish>, tokens: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getRewardTokens(overrides?: CallOverrides): Promise<string[]>;
    initialize(_voter: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isReward(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    lastClaimByToken(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    notifyRewardAmount(token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    rewards(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    tokenTotalSupplyByPeriod(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    totalVeShareByPeriod(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    veShareByPeriod(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    veWithdrawnTokenAmountByPeriod(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, arg2: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    voter(overrides?: CallOverrides): Promise<string>;
    callStatic: {
        WEEK(overrides?: CallOverrides): Promise<BigNumber>;
        _deposit(amount: PromiseOrValue<BigNumberish>, tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        _ve(overrides?: CallOverrides): Promise<string>;
        _withdraw(amount: PromiseOrValue<BigNumberish>, tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        balanceOf(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        bribe(token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        earned(token: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        firstPeriod(overrides?: CallOverrides): Promise<BigNumber>;
        getPeriod(overrides?: CallOverrides): Promise<BigNumber>;
        getPeriodReward(period: PromiseOrValue<BigNumberish>, tokenId: PromiseOrValue<BigNumberish>, token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        getReward(tokenId: PromiseOrValue<BigNumberish>, tokens: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        getRewardForOwner(tokenId: PromiseOrValue<BigNumberish>, tokens: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        getRewardTokens(overrides?: CallOverrides): Promise<string[]>;
        initialize(_voter: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        isReward(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        lastClaimByToken(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        notifyRewardAmount(token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        rewards(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        tokenTotalSupplyByPeriod(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalVeShareByPeriod(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        veShareByPeriod(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        veWithdrawnTokenAmountByPeriod(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, arg2: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        voter(overrides?: CallOverrides): Promise<string>;
    };
    filters: {
        'ClaimRewards(uint256,uint256,address,address,uint256)'(period?: null, tokenId?: null, receiver?: null, reward?: null, amount?: null): ClaimRewardsEventFilter;
        ClaimRewards(period?: null, tokenId?: null, receiver?: null, reward?: null, amount?: null): ClaimRewardsEventFilter;
        'Deposit(address,uint256,uint256)'(from?: PromiseOrValue<string> | null, tokenId?: null, amount?: null): DepositEventFilter;
        Deposit(from?: PromiseOrValue<string> | null, tokenId?: null, amount?: null): DepositEventFilter;
        'Initialized(uint8)'(version?: null): InitializedEventFilter;
        Initialized(version?: null): InitializedEventFilter;
        'NotifyReward(address,address,uint256)'(from?: PromiseOrValue<string> | null, reward?: PromiseOrValue<string> | null, amount?: null): NotifyRewardEventFilter;
        NotifyReward(from?: PromiseOrValue<string> | null, reward?: PromiseOrValue<string> | null, amount?: null): NotifyRewardEventFilter;
        'Withdraw(address,uint256,uint256)'(from?: PromiseOrValue<string> | null, tokenId?: null, amount?: null): WithdrawEventFilter;
        Withdraw(from?: PromiseOrValue<string> | null, tokenId?: null, amount?: null): WithdrawEventFilter;
    };
    estimateGas: {
        WEEK(overrides?: CallOverrides): Promise<BigNumber>;
        _deposit(amount: PromiseOrValue<BigNumberish>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        _ve(overrides?: CallOverrides): Promise<BigNumber>;
        _withdraw(amount: PromiseOrValue<BigNumberish>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        balanceOf(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        bribe(token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        earned(token: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        firstPeriod(overrides?: CallOverrides): Promise<BigNumber>;
        getPeriod(overrides?: CallOverrides): Promise<BigNumber>;
        getPeriodReward(period: PromiseOrValue<BigNumberish>, tokenId: PromiseOrValue<BigNumberish>, token: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getReward(tokenId: PromiseOrValue<BigNumberish>, tokens: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getRewardForOwner(tokenId: PromiseOrValue<BigNumberish>, tokens: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getRewardTokens(overrides?: CallOverrides): Promise<BigNumber>;
        initialize(_voter: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isReward(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        lastClaimByToken(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        notifyRewardAmount(token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        rewards(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        tokenTotalSupplyByPeriod(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalVeShareByPeriod(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        veShareByPeriod(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        veWithdrawnTokenAmountByPeriod(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, arg2: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        voter(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        WEEK(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        _deposit(amount: PromiseOrValue<BigNumberish>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        _ve(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        _withdraw(amount: PromiseOrValue<BigNumberish>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        balanceOf(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        bribe(token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        earned(token: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        firstPeriod(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPeriod(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPeriodReward(period: PromiseOrValue<BigNumberish>, tokenId: PromiseOrValue<BigNumberish>, token: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getReward(tokenId: PromiseOrValue<BigNumberish>, tokens: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getRewardForOwner(tokenId: PromiseOrValue<BigNumberish>, tokens: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getRewardTokens(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initialize(_voter: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isReward(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lastClaimByToken(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        notifyRewardAmount(token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        rewards(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tokenTotalSupplyByPeriod(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalVeShareByPeriod(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        veShareByPeriod(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        veWithdrawnTokenAmountByPeriod(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, arg2: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        voter(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
