import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PayableOverrides, 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 YieldYakChefInterface extends utils.Interface {
    functions: {
        'add(uint256,address,bool,bool)': FunctionFragment;
        'addRewardsBalance()': FunctionFragment;
        'changeOwner(address)': FunctionFragment;
        'deposit(uint256,uint256)': FunctionFragment;
        'depositWithPermit(uint256,uint256,uint256,uint8,bytes32,bytes32)': FunctionFragment;
        'emergencyWithdraw(uint256)': FunctionFragment;
        'endTimestamp()': FunctionFragment;
        'getMultiplier(uint256,uint256)': FunctionFragment;
        'lockManager()': FunctionFragment;
        'massUpdatePools()': FunctionFragment;
        'owner()': FunctionFragment;
        'pendingRewards(uint256,address)': FunctionFragment;
        'poolInfo(uint256)': FunctionFragment;
        'poolLength()': FunctionFragment;
        'rewardsActive()': FunctionFragment;
        'rewardsPerSecond()': FunctionFragment;
        'set(uint256,uint256,bool)': FunctionFragment;
        'setLockManager(address)': FunctionFragment;
        'setRewardsPerSecond(uint256)': FunctionFragment;
        'startTimestamp()': FunctionFragment;
        'totalAllocPoint()': FunctionFragment;
        'updatePool(uint256)': FunctionFragment;
        'userInfo(uint256,address)': FunctionFragment;
        'withdraw(uint256,uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'add' | 'addRewardsBalance' | 'changeOwner' | 'deposit' | 'depositWithPermit' | 'emergencyWithdraw' | 'endTimestamp' | 'getMultiplier' | 'lockManager' | 'massUpdatePools' | 'owner' | 'pendingRewards' | 'poolInfo' | 'poolLength' | 'rewardsActive' | 'rewardsPerSecond' | 'set' | 'setLockManager' | 'setRewardsPerSecond' | 'startTimestamp' | 'totalAllocPoint' | 'updatePool' | 'userInfo' | 'withdraw'): FunctionFragment;
    encodeFunctionData(functionFragment: 'add', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<boolean>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'addRewardsBalance', values?: undefined): string;
    encodeFunctionData(functionFragment: 'changeOwner', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'deposit', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'depositWithPermit', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: 'emergencyWithdraw', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'endTimestamp', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getMultiplier', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'lockManager', values?: undefined): string;
    encodeFunctionData(functionFragment: 'massUpdatePools', values?: undefined): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pendingRewards', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'poolInfo', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'poolLength', values?: undefined): string;
    encodeFunctionData(functionFragment: 'rewardsActive', values?: undefined): string;
    encodeFunctionData(functionFragment: 'rewardsPerSecond', values?: undefined): string;
    encodeFunctionData(functionFragment: 'set', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setLockManager', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setRewardsPerSecond', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'startTimestamp', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalAllocPoint', values?: undefined): string;
    encodeFunctionData(functionFragment: 'updatePool', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'userInfo', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'withdraw', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'add', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addRewardsBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'changeOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositWithPermit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'emergencyWithdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'endTimestamp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getMultiplier', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lockManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'massUpdatePools', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pendingRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'poolInfo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'poolLength', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'rewardsActive', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'rewardsPerSecond', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'set', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setLockManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setRewardsPerSecond', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'startTimestamp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalAllocPoint', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updatePool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'userInfo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    events: {
        'ChangedAddress(string,address,address)': EventFragment;
        'ChangedOwner(address,address)': EventFragment;
        'ChangedRewardsEndTimestamp(uint256,uint256)': EventFragment;
        'ChangedRewardsPerSecond(uint256,uint256)': EventFragment;
        'Deposit(address,uint256,uint256)': EventFragment;
        'EmergencyWithdraw(address,uint256,uint256)': EventFragment;
        'PoolAdded(uint256,address,uint256,uint256,uint256,bool)': EventFragment;
        'PoolUpdated(uint256,uint256,uint256,uint256)': EventFragment;
        'SetRewardsStartTimestamp(uint256)': EventFragment;
        'Withdraw(address,uint256,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'ChangedAddress'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ChangedOwner'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ChangedRewardsEndTimestamp'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ChangedRewardsPerSecond'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Deposit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'EmergencyWithdraw'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PoolAdded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PoolUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SetRewardsStartTimestamp'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Withdraw'): EventFragment;
}
export interface ChangedAddressEventObject {
    addressType: string;
    oldAddress: string;
    newAddress: string;
}
export declare type ChangedAddressEvent = TypedEvent<[string, string, string], ChangedAddressEventObject>;
export declare type ChangedAddressEventFilter = TypedEventFilter<ChangedAddressEvent>;
export interface ChangedOwnerEventObject {
    oldOwner: string;
    newOwner: string;
}
export declare type ChangedOwnerEvent = TypedEvent<[string, string], ChangedOwnerEventObject>;
export declare type ChangedOwnerEventFilter = TypedEventFilter<ChangedOwnerEvent>;
export interface ChangedRewardsEndTimestampEventObject {
    oldEndTimestamp: BigNumber;
    newEndTimestamp: BigNumber;
}
export declare type ChangedRewardsEndTimestampEvent = TypedEvent<[BigNumber, BigNumber], ChangedRewardsEndTimestampEventObject>;
export declare type ChangedRewardsEndTimestampEventFilter = TypedEventFilter<ChangedRewardsEndTimestampEvent>;
export interface ChangedRewardsPerSecondEventObject {
    oldRewardsPerSecond: BigNumber;
    newRewardsPerSecond: BigNumber;
}
export declare type ChangedRewardsPerSecondEvent = TypedEvent<[BigNumber, BigNumber], ChangedRewardsPerSecondEventObject>;
export declare type ChangedRewardsPerSecondEventFilter = TypedEventFilter<ChangedRewardsPerSecondEvent>;
export interface DepositEventObject {
    user: string;
    pid: BigNumber;
    amount: BigNumber;
}
export declare type DepositEvent = TypedEvent<[string, BigNumber, BigNumber], DepositEventObject>;
export declare type DepositEventFilter = TypedEventFilter<DepositEvent>;
export interface EmergencyWithdrawEventObject {
    user: string;
    pid: BigNumber;
    amount: BigNumber;
}
export declare type EmergencyWithdrawEvent = TypedEvent<[string, BigNumber, BigNumber], EmergencyWithdrawEventObject>;
export declare type EmergencyWithdrawEventFilter = TypedEventFilter<EmergencyWithdrawEvent>;
export interface PoolAddedEventObject {
    pid: BigNumber;
    token: string;
    allocPoints: BigNumber;
    totalAllocPoints: BigNumber;
    rewardStartTimestamp: BigNumber;
    vpForDeposit: boolean;
}
export declare type PoolAddedEvent = TypedEvent<[
    BigNumber,
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    boolean
], PoolAddedEventObject>;
export declare type PoolAddedEventFilter = TypedEventFilter<PoolAddedEvent>;
export interface PoolUpdatedEventObject {
    pid: BigNumber;
    oldAllocPoints: BigNumber;
    newAllocPoints: BigNumber;
    newTotalAllocPoints: BigNumber;
}
export declare type PoolUpdatedEvent = TypedEvent<[BigNumber, BigNumber, BigNumber, BigNumber], PoolUpdatedEventObject>;
export declare type PoolUpdatedEventFilter = TypedEventFilter<PoolUpdatedEvent>;
export interface SetRewardsStartTimestampEventObject {
    startTimestamp: BigNumber;
}
export declare type SetRewardsStartTimestampEvent = TypedEvent<[BigNumber], SetRewardsStartTimestampEventObject>;
export declare type SetRewardsStartTimestampEventFilter = TypedEventFilter<SetRewardsStartTimestampEvent>;
export interface WithdrawEventObject {
    user: string;
    pid: BigNumber;
    amount: BigNumber;
}
export declare type WithdrawEvent = TypedEvent<[string, BigNumber, BigNumber], WithdrawEventObject>;
export declare type WithdrawEventFilter = TypedEventFilter<WithdrawEvent>;
export interface YieldYakChef extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: YieldYakChefInterface;
    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: {
        add(allocPoint: PromiseOrValue<BigNumberish>, token: PromiseOrValue<string>, withUpdate: PromiseOrValue<boolean>, vpForDeposit: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addRewardsBalance(overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        changeOwner(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        deposit(pid: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        depositWithPermit(pid: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        emergencyWithdraw(pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        endTimestamp(overrides?: CallOverrides): Promise<[BigNumber]>;
        getMultiplier(from: PromiseOrValue<BigNumberish>, to: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        lockManager(overrides?: CallOverrides): Promise<[string]>;
        massUpdatePools(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        pendingRewards(pid: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        poolInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            string,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            boolean
        ] & {
            token: string;
            allocPoint: BigNumber;
            lastRewardTimestamp: BigNumber;
            accRewardsPerShare: BigNumber;
            totalStaked: BigNumber;
            vpForDeposit: boolean;
        }>;
        poolLength(overrides?: CallOverrides): Promise<[BigNumber]>;
        rewardsActive(overrides?: CallOverrides): Promise<[boolean]>;
        rewardsPerSecond(overrides?: CallOverrides): Promise<[BigNumber]>;
        set(pid: PromiseOrValue<BigNumberish>, allocPoint: PromiseOrValue<BigNumberish>, withUpdate: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setLockManager(newAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setRewardsPerSecond(newRewardsPerSecond: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        startTimestamp(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalAllocPoint(overrides?: CallOverrides): Promise<[BigNumber]>;
        updatePool(pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        userInfo(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            amount: BigNumber;
            rewardTokenDebt: BigNumber;
        }>;
        withdraw(pid: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    add(allocPoint: PromiseOrValue<BigNumberish>, token: PromiseOrValue<string>, withUpdate: PromiseOrValue<boolean>, vpForDeposit: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addRewardsBalance(overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    changeOwner(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    deposit(pid: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    depositWithPermit(pid: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    emergencyWithdraw(pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    endTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
    getMultiplier(from: PromiseOrValue<BigNumberish>, to: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    lockManager(overrides?: CallOverrides): Promise<string>;
    massUpdatePools(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    owner(overrides?: CallOverrides): Promise<string>;
    pendingRewards(pid: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    poolInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        string,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        boolean
    ] & {
        token: string;
        allocPoint: BigNumber;
        lastRewardTimestamp: BigNumber;
        accRewardsPerShare: BigNumber;
        totalStaked: BigNumber;
        vpForDeposit: boolean;
    }>;
    poolLength(overrides?: CallOverrides): Promise<BigNumber>;
    rewardsActive(overrides?: CallOverrides): Promise<boolean>;
    rewardsPerSecond(overrides?: CallOverrides): Promise<BigNumber>;
    set(pid: PromiseOrValue<BigNumberish>, allocPoint: PromiseOrValue<BigNumberish>, withUpdate: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setLockManager(newAddress: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setRewardsPerSecond(newRewardsPerSecond: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    startTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
    totalAllocPoint(overrides?: CallOverrides): Promise<BigNumber>;
    updatePool(pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    userInfo(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        amount: BigNumber;
        rewardTokenDebt: BigNumber;
    }>;
    withdraw(pid: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        add(allocPoint: PromiseOrValue<BigNumberish>, token: PromiseOrValue<string>, withUpdate: PromiseOrValue<boolean>, vpForDeposit: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        addRewardsBalance(overrides?: CallOverrides): Promise<void>;
        changeOwner(newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        deposit(pid: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        depositWithPermit(pid: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        emergencyWithdraw(pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        endTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
        getMultiplier(from: PromiseOrValue<BigNumberish>, to: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        lockManager(overrides?: CallOverrides): Promise<string>;
        massUpdatePools(overrides?: CallOverrides): Promise<void>;
        owner(overrides?: CallOverrides): Promise<string>;
        pendingRewards(pid: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        poolInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            string,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            boolean
        ] & {
            token: string;
            allocPoint: BigNumber;
            lastRewardTimestamp: BigNumber;
            accRewardsPerShare: BigNumber;
            totalStaked: BigNumber;
            vpForDeposit: boolean;
        }>;
        poolLength(overrides?: CallOverrides): Promise<BigNumber>;
        rewardsActive(overrides?: CallOverrides): Promise<boolean>;
        rewardsPerSecond(overrides?: CallOverrides): Promise<BigNumber>;
        set(pid: PromiseOrValue<BigNumberish>, allocPoint: PromiseOrValue<BigNumberish>, withUpdate: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setLockManager(newAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setRewardsPerSecond(newRewardsPerSecond: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        startTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
        totalAllocPoint(overrides?: CallOverrides): Promise<BigNumber>;
        updatePool(pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        userInfo(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            amount: BigNumber;
            rewardTokenDebt: BigNumber;
        }>;
        withdraw(pid: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        'ChangedAddress(string,address,address)'(addressType?: PromiseOrValue<string> | null, oldAddress?: PromiseOrValue<string> | null, newAddress?: PromiseOrValue<string> | null): ChangedAddressEventFilter;
        ChangedAddress(addressType?: PromiseOrValue<string> | null, oldAddress?: PromiseOrValue<string> | null, newAddress?: PromiseOrValue<string> | null): ChangedAddressEventFilter;
        'ChangedOwner(address,address)'(oldOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): ChangedOwnerEventFilter;
        ChangedOwner(oldOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): ChangedOwnerEventFilter;
        'ChangedRewardsEndTimestamp(uint256,uint256)'(oldEndTimestamp?: PromiseOrValue<BigNumberish> | null, newEndTimestamp?: PromiseOrValue<BigNumberish> | null): ChangedRewardsEndTimestampEventFilter;
        ChangedRewardsEndTimestamp(oldEndTimestamp?: PromiseOrValue<BigNumberish> | null, newEndTimestamp?: PromiseOrValue<BigNumberish> | null): ChangedRewardsEndTimestampEventFilter;
        'ChangedRewardsPerSecond(uint256,uint256)'(oldRewardsPerSecond?: PromiseOrValue<BigNumberish> | null, newRewardsPerSecond?: PromiseOrValue<BigNumberish> | null): ChangedRewardsPerSecondEventFilter;
        ChangedRewardsPerSecond(oldRewardsPerSecond?: PromiseOrValue<BigNumberish> | null, newRewardsPerSecond?: PromiseOrValue<BigNumberish> | null): ChangedRewardsPerSecondEventFilter;
        'Deposit(address,uint256,uint256)'(user?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, amount?: null): DepositEventFilter;
        Deposit(user?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, amount?: null): DepositEventFilter;
        'EmergencyWithdraw(address,uint256,uint256)'(user?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, amount?: null): EmergencyWithdrawEventFilter;
        EmergencyWithdraw(user?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, amount?: null): EmergencyWithdrawEventFilter;
        'PoolAdded(uint256,address,uint256,uint256,uint256,bool)'(pid?: PromiseOrValue<BigNumberish> | null, token?: PromiseOrValue<string> | null, allocPoints?: null, totalAllocPoints?: null, rewardStartTimestamp?: null, vpForDeposit?: null): PoolAddedEventFilter;
        PoolAdded(pid?: PromiseOrValue<BigNumberish> | null, token?: PromiseOrValue<string> | null, allocPoints?: null, totalAllocPoints?: null, rewardStartTimestamp?: null, vpForDeposit?: null): PoolAddedEventFilter;
        'PoolUpdated(uint256,uint256,uint256,uint256)'(pid?: PromiseOrValue<BigNumberish> | null, oldAllocPoints?: null, newAllocPoints?: null, newTotalAllocPoints?: null): PoolUpdatedEventFilter;
        PoolUpdated(pid?: PromiseOrValue<BigNumberish> | null, oldAllocPoints?: null, newAllocPoints?: null, newTotalAllocPoints?: null): PoolUpdatedEventFilter;
        'SetRewardsStartTimestamp(uint256)'(startTimestamp?: PromiseOrValue<BigNumberish> | null): SetRewardsStartTimestampEventFilter;
        SetRewardsStartTimestamp(startTimestamp?: PromiseOrValue<BigNumberish> | null): SetRewardsStartTimestampEventFilter;
        'Withdraw(address,uint256,uint256)'(user?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, amount?: null): WithdrawEventFilter;
        Withdraw(user?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, amount?: null): WithdrawEventFilter;
    };
    estimateGas: {
        add(allocPoint: PromiseOrValue<BigNumberish>, token: PromiseOrValue<string>, withUpdate: PromiseOrValue<boolean>, vpForDeposit: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addRewardsBalance(overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        changeOwner(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        deposit(pid: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        depositWithPermit(pid: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        emergencyWithdraw(pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        endTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
        getMultiplier(from: PromiseOrValue<BigNumberish>, to: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        lockManager(overrides?: CallOverrides): Promise<BigNumber>;
        massUpdatePools(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        pendingRewards(pid: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        poolInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        poolLength(overrides?: CallOverrides): Promise<BigNumber>;
        rewardsActive(overrides?: CallOverrides): Promise<BigNumber>;
        rewardsPerSecond(overrides?: CallOverrides): Promise<BigNumber>;
        set(pid: PromiseOrValue<BigNumberish>, allocPoint: PromiseOrValue<BigNumberish>, withUpdate: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setLockManager(newAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setRewardsPerSecond(newRewardsPerSecond: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        startTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
        totalAllocPoint(overrides?: CallOverrides): Promise<BigNumber>;
        updatePool(pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        userInfo(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        withdraw(pid: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        add(allocPoint: PromiseOrValue<BigNumberish>, token: PromiseOrValue<string>, withUpdate: PromiseOrValue<boolean>, vpForDeposit: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addRewardsBalance(overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        changeOwner(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        deposit(pid: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        depositWithPermit(pid: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        emergencyWithdraw(pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        endTimestamp(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getMultiplier(from: PromiseOrValue<BigNumberish>, to: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lockManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        massUpdatePools(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingRewards(pid: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolLength(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        rewardsActive(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        rewardsPerSecond(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        set(pid: PromiseOrValue<BigNumberish>, allocPoint: PromiseOrValue<BigNumberish>, withUpdate: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setLockManager(newAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setRewardsPerSecond(newRewardsPerSecond: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        startTimestamp(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalAllocPoint(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        updatePool(pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        userInfo(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdraw(pid: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
