import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "../../common";
import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
export declare namespace XVSVaultStorageV1 {
    type WithdrawalRequestStruct = {
        amount: PromiseOrValue<BigNumberish>;
        lockedUntil: PromiseOrValue<BigNumberish>;
        afterUpgrade: PromiseOrValue<BigNumberish>;
    };
    type WithdrawalRequestStructOutput = [
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        amount: BigNumber;
        lockedUntil: BigNumber;
        afterUpgrade: BigNumber;
    };
}
export interface XVSVaultInterface extends utils.Interface {
    functions: {
        "DELEGATION_TYPEHASH()": FunctionFragment;
        "DOMAIN_TYPEHASH()": FunctionFragment;
        "MAX_LOCK_PERIOD()": FunctionFragment;
        "SECONDS_PER_YEAR()": FunctionFragment;
        "_become(address)": FunctionFragment;
        "accessControlManager()": FunctionFragment;
        "add(address,uint256,address,uint256,uint256)": FunctionFragment;
        "admin()": FunctionFragment;
        "blocksOrSecondsPerYear()": FunctionFragment;
        "checkpoints(address,uint32)": FunctionFragment;
        "claim(address,address,uint256)": FunctionFragment;
        "delegate(address)": FunctionFragment;
        "delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment;
        "delegates(address)": FunctionFragment;
        "deposit(address,uint256,uint256)": FunctionFragment;
        "executeWithdrawal(address,uint256)": FunctionFragment;
        "getBlockNumberOrTimestamp()": FunctionFragment;
        "getCurrentVotes(address)": FunctionFragment;
        "getEligibleWithdrawalAmount(address,uint256,address)": FunctionFragment;
        "getPriorVotes(address,uint256)": FunctionFragment;
        "getRequestedAmount(address,uint256,address)": FunctionFragment;
        "getUserInfo(address,uint256,address)": FunctionFragment;
        "getWithdrawalRequests(address,uint256,address)": FunctionFragment;
        "implementation()": FunctionFragment;
        "initializeTimeManager(bool,uint256)": FunctionFragment;
        "isStakedToken(address)": FunctionFragment;
        "isTimeBased()": FunctionFragment;
        "nonces(address)": FunctionFragment;
        "numCheckpoints(address)": FunctionFragment;
        "pause()": FunctionFragment;
        "pendingAdmin()": FunctionFragment;
        "pendingReward(address,uint256,address)": FunctionFragment;
        "pendingRewardTransfers(address,address)": FunctionFragment;
        "pendingWithdrawalsBeforeUpgrade(address,uint256,address)": FunctionFragment;
        "pendingXVSVaultImplementation()": FunctionFragment;
        "poolInfos(address,uint256)": FunctionFragment;
        "poolLength(address)": FunctionFragment;
        "primePoolId()": FunctionFragment;
        "primeRewardToken()": FunctionFragment;
        "primeToken()": FunctionFragment;
        "requestWithdrawal(address,uint256,uint256)": FunctionFragment;
        "resume()": FunctionFragment;
        "rewardTokenAmountsPerBlock(address)": FunctionFragment;
        "rewardTokenAmountsPerBlockOrSecond(address)": FunctionFragment;
        "set(address,uint256,uint256)": FunctionFragment;
        "setAccessControl(address)": FunctionFragment;
        "setPrimeToken(address,address,uint256)": FunctionFragment;
        "setRewardAmountPerBlockOrSecond(address,uint256)": FunctionFragment;
        "setWithdrawalLockingPeriod(address,uint256,uint256)": FunctionFragment;
        "setXvsStore(address,address)": FunctionFragment;
        "totalAllocPoints(address)": FunctionFragment;
        "totalPendingWithdrawals(address,uint256)": FunctionFragment;
        "updatePool(address,uint256)": FunctionFragment;
        "vaultPaused()": FunctionFragment;
        "xvsAddress()": FunctionFragment;
        "xvsStore()": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "DELEGATION_TYPEHASH" | "DOMAIN_TYPEHASH" | "MAX_LOCK_PERIOD" | "SECONDS_PER_YEAR" | "_become" | "accessControlManager" | "add" | "admin" | "blocksOrSecondsPerYear" | "checkpoints" | "claim" | "delegate" | "delegateBySig" | "delegates" | "deposit" | "executeWithdrawal" | "getBlockNumberOrTimestamp" | "getCurrentVotes" | "getEligibleWithdrawalAmount" | "getPriorVotes" | "getRequestedAmount" | "getUserInfo" | "getWithdrawalRequests" | "implementation" | "initializeTimeManager" | "isStakedToken" | "isTimeBased" | "nonces" | "numCheckpoints" | "pause" | "pendingAdmin" | "pendingReward" | "pendingRewardTransfers" | "pendingWithdrawalsBeforeUpgrade" | "pendingXVSVaultImplementation" | "poolInfos" | "poolLength" | "primePoolId" | "primeRewardToken" | "primeToken" | "requestWithdrawal" | "resume" | "rewardTokenAmountsPerBlock" | "rewardTokenAmountsPerBlockOrSecond" | "set" | "setAccessControl" | "setPrimeToken" | "setRewardAmountPerBlockOrSecond" | "setWithdrawalLockingPeriod" | "setXvsStore" | "totalAllocPoints" | "totalPendingWithdrawals" | "updatePool" | "vaultPaused" | "xvsAddress" | "xvsStore"): FunctionFragment;
    encodeFunctionData(functionFragment: "DELEGATION_TYPEHASH", values?: undefined): string;
    encodeFunctionData(functionFragment: "DOMAIN_TYPEHASH", values?: undefined): string;
    encodeFunctionData(functionFragment: "MAX_LOCK_PERIOD", values?: undefined): string;
    encodeFunctionData(functionFragment: "SECONDS_PER_YEAR", values?: undefined): string;
    encodeFunctionData(functionFragment: "_become", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "accessControlManager", values?: undefined): string;
    encodeFunctionData(functionFragment: "add", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "admin", values?: undefined): string;
    encodeFunctionData(functionFragment: "blocksOrSecondsPerYear", values?: undefined): string;
    encodeFunctionData(functionFragment: "checkpoints", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "claim", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "delegate", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "delegateBySig", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: "delegates", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "deposit", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "executeWithdrawal", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getBlockNumberOrTimestamp", values?: undefined): string;
    encodeFunctionData(functionFragment: "getCurrentVotes", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "getEligibleWithdrawalAmount", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: "getPriorVotes", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getRequestedAmount", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: "getUserInfo", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: "getWithdrawalRequests", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: "implementation", values?: undefined): string;
    encodeFunctionData(functionFragment: "initializeTimeManager", values: [PromiseOrValue<boolean>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "isStakedToken", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "isTimeBased", values?: undefined): string;
    encodeFunctionData(functionFragment: "nonces", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "numCheckpoints", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "pause", values?: undefined): string;
    encodeFunctionData(functionFragment: "pendingAdmin", values?: undefined): string;
    encodeFunctionData(functionFragment: "pendingReward", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: "pendingRewardTransfers", values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "pendingWithdrawalsBeforeUpgrade", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: "pendingXVSVaultImplementation", values?: undefined): string;
    encodeFunctionData(functionFragment: "poolInfos", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "poolLength", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "primePoolId", values?: undefined): string;
    encodeFunctionData(functionFragment: "primeRewardToken", values?: undefined): string;
    encodeFunctionData(functionFragment: "primeToken", values?: undefined): string;
    encodeFunctionData(functionFragment: "requestWithdrawal", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "resume", values?: undefined): string;
    encodeFunctionData(functionFragment: "rewardTokenAmountsPerBlock", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "rewardTokenAmountsPerBlockOrSecond", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "set", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "setAccessControl", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "setPrimeToken", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "setRewardAmountPerBlockOrSecond", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "setWithdrawalLockingPeriod", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "setXvsStore", values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "totalAllocPoints", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "totalPendingWithdrawals", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "updatePool", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "vaultPaused", values?: undefined): string;
    encodeFunctionData(functionFragment: "xvsAddress", values?: undefined): string;
    encodeFunctionData(functionFragment: "xvsStore", values?: undefined): string;
    decodeFunctionResult(functionFragment: "DELEGATION_TYPEHASH", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "DOMAIN_TYPEHASH", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "MAX_LOCK_PERIOD", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "SECONDS_PER_YEAR", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_become", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "accessControlManager", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "add", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "admin", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "blocksOrSecondsPerYear", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "checkpoints", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "claim", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "delegate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "delegateBySig", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "delegates", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "executeWithdrawal", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getBlockNumberOrTimestamp", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getCurrentVotes", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getEligibleWithdrawalAmount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPriorVotes", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRequestedAmount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getUserInfo", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getWithdrawalRequests", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "implementation", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "initializeTimeManager", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isStakedToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isTimeBased", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "numCheckpoints", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pendingAdmin", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pendingReward", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pendingRewardTransfers", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pendingWithdrawalsBeforeUpgrade", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pendingXVSVaultImplementation", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "poolInfos", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "poolLength", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "primePoolId", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "primeRewardToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "primeToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "requestWithdrawal", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "resume", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rewardTokenAmountsPerBlock", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rewardTokenAmountsPerBlockOrSecond", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "set", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setAccessControl", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setPrimeToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setRewardAmountPerBlockOrSecond", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setWithdrawalLockingPeriod", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setXvsStore", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "totalAllocPoints", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "totalPendingWithdrawals", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updatePool", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "vaultPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "xvsAddress", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "xvsStore", data: BytesLike): Result;
    events: {
        "Claim(address,address,uint256,uint256)": EventFragment;
        "DelegateChangedV2(address,address,address)": EventFragment;
        "DelegateVotesChangedV2(address,uint256,uint256)": EventFragment;
        "Deposit(address,address,uint256,uint256)": EventFragment;
        "ExecutedWithdrawal(address,address,uint256,uint256)": EventFragment;
        "NewAccessControlManager(address,address)": EventFragment;
        "NewPrimeToken(address,address,address,address,uint256,uint256)": EventFragment;
        "PoolAdded(address,uint256,address,uint256,uint256,uint256)": EventFragment;
        "PoolUpdated(address,uint256,uint256,uint256)": EventFragment;
        "RequestedWithdrawal(address,address,uint256,uint256)": EventFragment;
        "RewardAmountUpdated(address,uint256,uint256)": EventFragment;
        "StoreUpdated(address,address,address,address)": EventFragment;
        "VaultDebtUpdated(address,address,uint256,uint256)": EventFragment;
        "VaultPaused(address)": EventFragment;
        "VaultResumed(address)": EventFragment;
        "WithdrawalLockingPeriodUpdated(address,uint256,uint256,uint256)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "Claim"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "DelegateChangedV2"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "DelegateVotesChangedV2"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "ExecutedWithdrawal"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "NewAccessControlManager"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "NewPrimeToken"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "PoolAdded"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "PoolUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RequestedWithdrawal"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RewardAmountUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "StoreUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "VaultDebtUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "VaultPaused"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "VaultResumed"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "WithdrawalLockingPeriodUpdated"): EventFragment;
}
export interface ClaimEventObject {
    user: string;
    rewardToken: string;
    pid: BigNumber;
    amount: BigNumber;
}
export type ClaimEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber
], ClaimEventObject>;
export type ClaimEventFilter = TypedEventFilter<ClaimEvent>;
export interface DelegateChangedV2EventObject {
    delegator: string;
    fromDelegate: string;
    toDelegate: string;
}
export type DelegateChangedV2Event = TypedEvent<[
    string,
    string,
    string
], DelegateChangedV2EventObject>;
export type DelegateChangedV2EventFilter = TypedEventFilter<DelegateChangedV2Event>;
export interface DelegateVotesChangedV2EventObject {
    delegate: string;
    previousBalance: BigNumber;
    newBalance: BigNumber;
}
export type DelegateVotesChangedV2Event = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], DelegateVotesChangedV2EventObject>;
export type DelegateVotesChangedV2EventFilter = TypedEventFilter<DelegateVotesChangedV2Event>;
export interface DepositEventObject {
    user: string;
    rewardToken: string;
    pid: BigNumber;
    amount: BigNumber;
}
export type DepositEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber
], DepositEventObject>;
export type DepositEventFilter = TypedEventFilter<DepositEvent>;
export interface ExecutedWithdrawalEventObject {
    user: string;
    rewardToken: string;
    pid: BigNumber;
    amount: BigNumber;
}
export type ExecutedWithdrawalEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber
], ExecutedWithdrawalEventObject>;
export type ExecutedWithdrawalEventFilter = TypedEventFilter<ExecutedWithdrawalEvent>;
export interface NewAccessControlManagerEventObject {
    oldAccessControlManager: string;
    newAccessControlManager: string;
}
export type NewAccessControlManagerEvent = TypedEvent<[
    string,
    string
], NewAccessControlManagerEventObject>;
export type NewAccessControlManagerEventFilter = TypedEventFilter<NewAccessControlManagerEvent>;
export interface NewPrimeTokenEventObject {
    oldPrimeToken: string;
    newPrimeToken: string;
    oldPrimeRewardToken: string;
    newPrimeRewardToken: string;
    oldPrimePoolId: BigNumber;
    newPrimePoolId: BigNumber;
}
export type NewPrimeTokenEvent = TypedEvent<[
    string,
    string,
    string,
    string,
    BigNumber,
    BigNumber
], NewPrimeTokenEventObject>;
export type NewPrimeTokenEventFilter = TypedEventFilter<NewPrimeTokenEvent>;
export interface PoolAddedEventObject {
    rewardToken: string;
    pid: BigNumber;
    token: string;
    allocPoints: BigNumber;
    rewardPerBlockOrSecond: BigNumber;
    lockPeriod: BigNumber;
}
export type PoolAddedEvent = TypedEvent<[
    string,
    BigNumber,
    string,
    BigNumber,
    BigNumber,
    BigNumber
], PoolAddedEventObject>;
export type PoolAddedEventFilter = TypedEventFilter<PoolAddedEvent>;
export interface PoolUpdatedEventObject {
    rewardToken: string;
    pid: BigNumber;
    oldAllocPoints: BigNumber;
    newAllocPoints: BigNumber;
}
export type PoolUpdatedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber
], PoolUpdatedEventObject>;
export type PoolUpdatedEventFilter = TypedEventFilter<PoolUpdatedEvent>;
export interface RequestedWithdrawalEventObject {
    user: string;
    rewardToken: string;
    pid: BigNumber;
    amount: BigNumber;
}
export type RequestedWithdrawalEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber
], RequestedWithdrawalEventObject>;
export type RequestedWithdrawalEventFilter = TypedEventFilter<RequestedWithdrawalEvent>;
export interface RewardAmountUpdatedEventObject {
    rewardToken: string;
    oldReward: BigNumber;
    newReward: BigNumber;
}
export type RewardAmountUpdatedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], RewardAmountUpdatedEventObject>;
export type RewardAmountUpdatedEventFilter = TypedEventFilter<RewardAmountUpdatedEvent>;
export interface StoreUpdatedEventObject {
    oldXvs: string;
    oldStore: string;
    newXvs: string;
    newStore: string;
}
export type StoreUpdatedEvent = TypedEvent<[
    string,
    string,
    string,
    string
], StoreUpdatedEventObject>;
export type StoreUpdatedEventFilter = TypedEventFilter<StoreUpdatedEvent>;
export interface VaultDebtUpdatedEventObject {
    rewardToken: string;
    userAddress: string;
    oldOwedAmount: BigNumber;
    newOwedAmount: BigNumber;
}
export type VaultDebtUpdatedEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber
], VaultDebtUpdatedEventObject>;
export type VaultDebtUpdatedEventFilter = TypedEventFilter<VaultDebtUpdatedEvent>;
export interface VaultPausedEventObject {
    admin: string;
}
export type VaultPausedEvent = TypedEvent<[string], VaultPausedEventObject>;
export type VaultPausedEventFilter = TypedEventFilter<VaultPausedEvent>;
export interface VaultResumedEventObject {
    admin: string;
}
export type VaultResumedEvent = TypedEvent<[string], VaultResumedEventObject>;
export type VaultResumedEventFilter = TypedEventFilter<VaultResumedEvent>;
export interface WithdrawalLockingPeriodUpdatedEventObject {
    rewardToken: string;
    pid: BigNumber;
    oldPeriod: BigNumber;
    newPeriod: BigNumber;
}
export type WithdrawalLockingPeriodUpdatedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber
], WithdrawalLockingPeriodUpdatedEventObject>;
export type WithdrawalLockingPeriodUpdatedEventFilter = TypedEventFilter<WithdrawalLockingPeriodUpdatedEvent>;
export interface XVSVault extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: XVSVaultInterface;
    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: {
        DELEGATION_TYPEHASH(overrides?: CallOverrides): Promise<[string]>;
        DOMAIN_TYPEHASH(overrides?: CallOverrides): Promise<[string]>;
        MAX_LOCK_PERIOD(overrides?: CallOverrides): Promise<[BigNumber]>;
        SECONDS_PER_YEAR(overrides?: CallOverrides): Promise<[BigNumber]>;
        _become(xvsVaultProxy: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        accessControlManager(overrides?: CallOverrides): Promise<[string]>;
        add(_rewardToken: PromiseOrValue<string>, _allocPoint: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _rewardPerBlockOrSecond: PromiseOrValue<BigNumberish>, _lockPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        admin(overrides?: CallOverrides): Promise<[string]>;
        blocksOrSecondsPerYear(overrides?: CallOverrides): Promise<[BigNumber]>;
        checkpoints(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            number,
            BigNumber
        ] & {
            fromBlockOrSecond: number;
            votes: BigNumber;
        }>;
        claim(_account: PromiseOrValue<string>, _rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        delegate(delegatee: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        delegateBySig(delegatee: PromiseOrValue<string>, nonce: PromiseOrValue<BigNumberish>, expiry: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        delegates(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string]>;
        deposit(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        executeWithdrawal(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getBlockNumberOrTimestamp(overrides?: CallOverrides): Promise<[BigNumber]>;
        getCurrentVotes(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getEligibleWithdrawalAmount(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            withdrawalAmount: BigNumber;
        }>;
        getPriorVotes(account: PromiseOrValue<string>, blockNumberOrSecond: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getRequestedAmount(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getUserInfo(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            amount: BigNumber;
            rewardDebt: BigNumber;
            pendingWithdrawals: BigNumber;
        }>;
        getWithdrawalRequests(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[XVSVaultStorageV1.WithdrawalRequestStructOutput[]]>;
        implementation(overrides?: CallOverrides): Promise<[string]>;
        initializeTimeManager(timeBased_: PromiseOrValue<boolean>, blocksPerYear_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isStakedToken(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isTimeBased(overrides?: CallOverrides): Promise<[boolean]>;
        nonces(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        numCheckpoints(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[number]>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        pendingAdmin(overrides?: CallOverrides): Promise<[string]>;
        pendingReward(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        pendingRewardTransfers(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        pendingWithdrawalsBeforeUpgrade(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            beforeUpgradeWithdrawalAmount: BigNumber;
        }>;
        pendingXVSVaultImplementation(overrides?: CallOverrides): Promise<[string]>;
        poolInfos(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            string,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            token: string;
            allocPoint: BigNumber;
            lastRewardBlockOrSecond: BigNumber;
            accRewardPerShare: BigNumber;
            lockPeriod: BigNumber;
        }>;
        poolLength(rewardToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        primePoolId(overrides?: CallOverrides): Promise<[BigNumber]>;
        primeRewardToken(overrides?: CallOverrides): Promise<[string]>;
        primeToken(overrides?: CallOverrides): Promise<[string]>;
        requestWithdrawal(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        resume(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        rewardTokenAmountsPerBlock(_rewardToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        rewardTokenAmountsPerBlockOrSecond(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        set(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _allocPoint: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setAccessControl(newAccessControlAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setPrimeToken(_primeToken: PromiseOrValue<string>, _primeRewardToken: PromiseOrValue<string>, _primePoolId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setRewardAmountPerBlockOrSecond(_rewardToken: PromiseOrValue<string>, _rewardAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setWithdrawalLockingPeriod(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _newPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setXvsStore(_xvs: PromiseOrValue<string>, _xvsStore: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        totalAllocPoints(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalPendingWithdrawals(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        updatePool(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        vaultPaused(overrides?: CallOverrides): Promise<[boolean]>;
        xvsAddress(overrides?: CallOverrides): Promise<[string]>;
        xvsStore(overrides?: CallOverrides): Promise<[string]>;
    };
    DELEGATION_TYPEHASH(overrides?: CallOverrides): Promise<string>;
    DOMAIN_TYPEHASH(overrides?: CallOverrides): Promise<string>;
    MAX_LOCK_PERIOD(overrides?: CallOverrides): Promise<BigNumber>;
    SECONDS_PER_YEAR(overrides?: CallOverrides): Promise<BigNumber>;
    _become(xvsVaultProxy: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    accessControlManager(overrides?: CallOverrides): Promise<string>;
    add(_rewardToken: PromiseOrValue<string>, _allocPoint: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _rewardPerBlockOrSecond: PromiseOrValue<BigNumberish>, _lockPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    admin(overrides?: CallOverrides): Promise<string>;
    blocksOrSecondsPerYear(overrides?: CallOverrides): Promise<BigNumber>;
    checkpoints(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        number,
        BigNumber
    ] & {
        fromBlockOrSecond: number;
        votes: BigNumber;
    }>;
    claim(_account: PromiseOrValue<string>, _rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    delegate(delegatee: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    delegateBySig(delegatee: PromiseOrValue<string>, nonce: PromiseOrValue<BigNumberish>, expiry: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    delegates(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    deposit(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    executeWithdrawal(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getBlockNumberOrTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
    getCurrentVotes(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getEligibleWithdrawalAmount(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getPriorVotes(account: PromiseOrValue<string>, blockNumberOrSecond: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getRequestedAmount(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getUserInfo(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        amount: BigNumber;
        rewardDebt: BigNumber;
        pendingWithdrawals: BigNumber;
    }>;
    getWithdrawalRequests(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<XVSVaultStorageV1.WithdrawalRequestStructOutput[]>;
    implementation(overrides?: CallOverrides): Promise<string>;
    initializeTimeManager(timeBased_: PromiseOrValue<boolean>, blocksPerYear_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isStakedToken(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isTimeBased(overrides?: CallOverrides): Promise<boolean>;
    nonces(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    numCheckpoints(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<number>;
    pause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    pendingAdmin(overrides?: CallOverrides): Promise<string>;
    pendingReward(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    pendingRewardTransfers(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    pendingWithdrawalsBeforeUpgrade(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    pendingXVSVaultImplementation(overrides?: CallOverrides): Promise<string>;
    poolInfos(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        string,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        token: string;
        allocPoint: BigNumber;
        lastRewardBlockOrSecond: BigNumber;
        accRewardPerShare: BigNumber;
        lockPeriod: BigNumber;
    }>;
    poolLength(rewardToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    primePoolId(overrides?: CallOverrides): Promise<BigNumber>;
    primeRewardToken(overrides?: CallOverrides): Promise<string>;
    primeToken(overrides?: CallOverrides): Promise<string>;
    requestWithdrawal(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    resume(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    rewardTokenAmountsPerBlock(_rewardToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    rewardTokenAmountsPerBlockOrSecond(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    set(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _allocPoint: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setAccessControl(newAccessControlAddress: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setPrimeToken(_primeToken: PromiseOrValue<string>, _primeRewardToken: PromiseOrValue<string>, _primePoolId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setRewardAmountPerBlockOrSecond(_rewardToken: PromiseOrValue<string>, _rewardAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setWithdrawalLockingPeriod(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _newPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setXvsStore(_xvs: PromiseOrValue<string>, _xvsStore: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    totalAllocPoints(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    totalPendingWithdrawals(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    updatePool(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    vaultPaused(overrides?: CallOverrides): Promise<boolean>;
    xvsAddress(overrides?: CallOverrides): Promise<string>;
    xvsStore(overrides?: CallOverrides): Promise<string>;
    callStatic: {
        DELEGATION_TYPEHASH(overrides?: CallOverrides): Promise<string>;
        DOMAIN_TYPEHASH(overrides?: CallOverrides): Promise<string>;
        MAX_LOCK_PERIOD(overrides?: CallOverrides): Promise<BigNumber>;
        SECONDS_PER_YEAR(overrides?: CallOverrides): Promise<BigNumber>;
        _become(xvsVaultProxy: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        accessControlManager(overrides?: CallOverrides): Promise<string>;
        add(_rewardToken: PromiseOrValue<string>, _allocPoint: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _rewardPerBlockOrSecond: PromiseOrValue<BigNumberish>, _lockPeriod: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        admin(overrides?: CallOverrides): Promise<string>;
        blocksOrSecondsPerYear(overrides?: CallOverrides): Promise<BigNumber>;
        checkpoints(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            number,
            BigNumber
        ] & {
            fromBlockOrSecond: number;
            votes: BigNumber;
        }>;
        claim(_account: PromiseOrValue<string>, _rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        delegate(delegatee: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        delegateBySig(delegatee: PromiseOrValue<string>, nonce: PromiseOrValue<BigNumberish>, expiry: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        delegates(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        deposit(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        executeWithdrawal(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        getBlockNumberOrTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentVotes(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getEligibleWithdrawalAmount(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getPriorVotes(account: PromiseOrValue<string>, blockNumberOrSecond: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getRequestedAmount(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserInfo(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            amount: BigNumber;
            rewardDebt: BigNumber;
            pendingWithdrawals: BigNumber;
        }>;
        getWithdrawalRequests(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<XVSVaultStorageV1.WithdrawalRequestStructOutput[]>;
        implementation(overrides?: CallOverrides): Promise<string>;
        initializeTimeManager(timeBased_: PromiseOrValue<boolean>, blocksPerYear_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        isStakedToken(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isTimeBased(overrides?: CallOverrides): Promise<boolean>;
        nonces(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        numCheckpoints(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<number>;
        pause(overrides?: CallOverrides): Promise<void>;
        pendingAdmin(overrides?: CallOverrides): Promise<string>;
        pendingReward(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        pendingRewardTransfers(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        pendingWithdrawalsBeforeUpgrade(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        pendingXVSVaultImplementation(overrides?: CallOverrides): Promise<string>;
        poolInfos(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            string,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            token: string;
            allocPoint: BigNumber;
            lastRewardBlockOrSecond: BigNumber;
            accRewardPerShare: BigNumber;
            lockPeriod: BigNumber;
        }>;
        poolLength(rewardToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        primePoolId(overrides?: CallOverrides): Promise<BigNumber>;
        primeRewardToken(overrides?: CallOverrides): Promise<string>;
        primeToken(overrides?: CallOverrides): Promise<string>;
        requestWithdrawal(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        resume(overrides?: CallOverrides): Promise<void>;
        rewardTokenAmountsPerBlock(_rewardToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        rewardTokenAmountsPerBlockOrSecond(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        set(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _allocPoint: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setAccessControl(newAccessControlAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setPrimeToken(_primeToken: PromiseOrValue<string>, _primeRewardToken: PromiseOrValue<string>, _primePoolId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setRewardAmountPerBlockOrSecond(_rewardToken: PromiseOrValue<string>, _rewardAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setWithdrawalLockingPeriod(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _newPeriod: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setXvsStore(_xvs: PromiseOrValue<string>, _xvsStore: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        totalAllocPoints(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalPendingWithdrawals(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        updatePool(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        vaultPaused(overrides?: CallOverrides): Promise<boolean>;
        xvsAddress(overrides?: CallOverrides): Promise<string>;
        xvsStore(overrides?: CallOverrides): Promise<string>;
    };
    filters: {
        "Claim(address,address,uint256,uint256)"(user?: PromiseOrValue<string> | null, rewardToken?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, amount?: null): ClaimEventFilter;
        Claim(user?: PromiseOrValue<string> | null, rewardToken?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, amount?: null): ClaimEventFilter;
        "DelegateChangedV2(address,address,address)"(delegator?: PromiseOrValue<string> | null, fromDelegate?: PromiseOrValue<string> | null, toDelegate?: PromiseOrValue<string> | null): DelegateChangedV2EventFilter;
        DelegateChangedV2(delegator?: PromiseOrValue<string> | null, fromDelegate?: PromiseOrValue<string> | null, toDelegate?: PromiseOrValue<string> | null): DelegateChangedV2EventFilter;
        "DelegateVotesChangedV2(address,uint256,uint256)"(delegate?: PromiseOrValue<string> | null, previousBalance?: null, newBalance?: null): DelegateVotesChangedV2EventFilter;
        DelegateVotesChangedV2(delegate?: PromiseOrValue<string> | null, previousBalance?: null, newBalance?: null): DelegateVotesChangedV2EventFilter;
        "Deposit(address,address,uint256,uint256)"(user?: PromiseOrValue<string> | null, rewardToken?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, amount?: null): DepositEventFilter;
        Deposit(user?: PromiseOrValue<string> | null, rewardToken?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, amount?: null): DepositEventFilter;
        "ExecutedWithdrawal(address,address,uint256,uint256)"(user?: PromiseOrValue<string> | null, rewardToken?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, amount?: null): ExecutedWithdrawalEventFilter;
        ExecutedWithdrawal(user?: PromiseOrValue<string> | null, rewardToken?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, amount?: null): ExecutedWithdrawalEventFilter;
        "NewAccessControlManager(address,address)"(oldAccessControlManager?: null, newAccessControlManager?: null): NewAccessControlManagerEventFilter;
        NewAccessControlManager(oldAccessControlManager?: null, newAccessControlManager?: null): NewAccessControlManagerEventFilter;
        "NewPrimeToken(address,address,address,address,uint256,uint256)"(oldPrimeToken?: PromiseOrValue<string> | null, newPrimeToken?: PromiseOrValue<string> | null, oldPrimeRewardToken?: null, newPrimeRewardToken?: null, oldPrimePoolId?: null, newPrimePoolId?: null): NewPrimeTokenEventFilter;
        NewPrimeToken(oldPrimeToken?: PromiseOrValue<string> | null, newPrimeToken?: PromiseOrValue<string> | null, oldPrimeRewardToken?: null, newPrimeRewardToken?: null, oldPrimePoolId?: null, newPrimePoolId?: null): NewPrimeTokenEventFilter;
        "PoolAdded(address,uint256,address,uint256,uint256,uint256)"(rewardToken?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, token?: PromiseOrValue<string> | null, allocPoints?: null, rewardPerBlockOrSecond?: null, lockPeriod?: null): PoolAddedEventFilter;
        PoolAdded(rewardToken?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, token?: PromiseOrValue<string> | null, allocPoints?: null, rewardPerBlockOrSecond?: null, lockPeriod?: null): PoolAddedEventFilter;
        "PoolUpdated(address,uint256,uint256,uint256)"(rewardToken?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, oldAllocPoints?: null, newAllocPoints?: null): PoolUpdatedEventFilter;
        PoolUpdated(rewardToken?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, oldAllocPoints?: null, newAllocPoints?: null): PoolUpdatedEventFilter;
        "RequestedWithdrawal(address,address,uint256,uint256)"(user?: PromiseOrValue<string> | null, rewardToken?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, amount?: null): RequestedWithdrawalEventFilter;
        RequestedWithdrawal(user?: PromiseOrValue<string> | null, rewardToken?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, amount?: null): RequestedWithdrawalEventFilter;
        "RewardAmountUpdated(address,uint256,uint256)"(rewardToken?: PromiseOrValue<string> | null, oldReward?: null, newReward?: null): RewardAmountUpdatedEventFilter;
        RewardAmountUpdated(rewardToken?: PromiseOrValue<string> | null, oldReward?: null, newReward?: null): RewardAmountUpdatedEventFilter;
        "StoreUpdated(address,address,address,address)"(oldXvs?: null, oldStore?: null, newXvs?: null, newStore?: null): StoreUpdatedEventFilter;
        StoreUpdated(oldXvs?: null, oldStore?: null, newXvs?: null, newStore?: null): StoreUpdatedEventFilter;
        "VaultDebtUpdated(address,address,uint256,uint256)"(rewardToken?: PromiseOrValue<string> | null, userAddress?: PromiseOrValue<string> | null, oldOwedAmount?: null, newOwedAmount?: null): VaultDebtUpdatedEventFilter;
        VaultDebtUpdated(rewardToken?: PromiseOrValue<string> | null, userAddress?: PromiseOrValue<string> | null, oldOwedAmount?: null, newOwedAmount?: null): VaultDebtUpdatedEventFilter;
        "VaultPaused(address)"(admin?: PromiseOrValue<string> | null): VaultPausedEventFilter;
        VaultPaused(admin?: PromiseOrValue<string> | null): VaultPausedEventFilter;
        "VaultResumed(address)"(admin?: PromiseOrValue<string> | null): VaultResumedEventFilter;
        VaultResumed(admin?: PromiseOrValue<string> | null): VaultResumedEventFilter;
        "WithdrawalLockingPeriodUpdated(address,uint256,uint256,uint256)"(rewardToken?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, oldPeriod?: null, newPeriod?: null): WithdrawalLockingPeriodUpdatedEventFilter;
        WithdrawalLockingPeriodUpdated(rewardToken?: PromiseOrValue<string> | null, pid?: PromiseOrValue<BigNumberish> | null, oldPeriod?: null, newPeriod?: null): WithdrawalLockingPeriodUpdatedEventFilter;
    };
    estimateGas: {
        DELEGATION_TYPEHASH(overrides?: CallOverrides): Promise<BigNumber>;
        DOMAIN_TYPEHASH(overrides?: CallOverrides): Promise<BigNumber>;
        MAX_LOCK_PERIOD(overrides?: CallOverrides): Promise<BigNumber>;
        SECONDS_PER_YEAR(overrides?: CallOverrides): Promise<BigNumber>;
        _become(xvsVaultProxy: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        accessControlManager(overrides?: CallOverrides): Promise<BigNumber>;
        add(_rewardToken: PromiseOrValue<string>, _allocPoint: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _rewardPerBlockOrSecond: PromiseOrValue<BigNumberish>, _lockPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        admin(overrides?: CallOverrides): Promise<BigNumber>;
        blocksOrSecondsPerYear(overrides?: CallOverrides): Promise<BigNumber>;
        checkpoints(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        claim(_account: PromiseOrValue<string>, _rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        delegate(delegatee: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        delegateBySig(delegatee: PromiseOrValue<string>, nonce: PromiseOrValue<BigNumberish>, expiry: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        delegates(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        deposit(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        executeWithdrawal(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getBlockNumberOrTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentVotes(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getEligibleWithdrawalAmount(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getPriorVotes(account: PromiseOrValue<string>, blockNumberOrSecond: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getRequestedAmount(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserInfo(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getWithdrawalRequests(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        implementation(overrides?: CallOverrides): Promise<BigNumber>;
        initializeTimeManager(timeBased_: PromiseOrValue<boolean>, blocksPerYear_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isStakedToken(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isTimeBased(overrides?: CallOverrides): Promise<BigNumber>;
        nonces(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        numCheckpoints(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        pendingAdmin(overrides?: CallOverrides): Promise<BigNumber>;
        pendingReward(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        pendingRewardTransfers(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        pendingWithdrawalsBeforeUpgrade(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        pendingXVSVaultImplementation(overrides?: CallOverrides): Promise<BigNumber>;
        poolInfos(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        poolLength(rewardToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        primePoolId(overrides?: CallOverrides): Promise<BigNumber>;
        primeRewardToken(overrides?: CallOverrides): Promise<BigNumber>;
        primeToken(overrides?: CallOverrides): Promise<BigNumber>;
        requestWithdrawal(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        resume(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        rewardTokenAmountsPerBlock(_rewardToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        rewardTokenAmountsPerBlockOrSecond(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        set(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _allocPoint: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setAccessControl(newAccessControlAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setPrimeToken(_primeToken: PromiseOrValue<string>, _primeRewardToken: PromiseOrValue<string>, _primePoolId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setRewardAmountPerBlockOrSecond(_rewardToken: PromiseOrValue<string>, _rewardAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setWithdrawalLockingPeriod(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _newPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setXvsStore(_xvs: PromiseOrValue<string>, _xvsStore: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        totalAllocPoints(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalPendingWithdrawals(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        updatePool(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        vaultPaused(overrides?: CallOverrides): Promise<BigNumber>;
        xvsAddress(overrides?: CallOverrides): Promise<BigNumber>;
        xvsStore(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        DELEGATION_TYPEHASH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        DOMAIN_TYPEHASH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MAX_LOCK_PERIOD(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        SECONDS_PER_YEAR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        _become(xvsVaultProxy: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        accessControlManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        add(_rewardToken: PromiseOrValue<string>, _allocPoint: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _rewardPerBlockOrSecond: PromiseOrValue<BigNumberish>, _lockPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        admin(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        blocksOrSecondsPerYear(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        checkpoints(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claim(_account: PromiseOrValue<string>, _rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        delegate(delegatee: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        delegateBySig(delegatee: PromiseOrValue<string>, nonce: PromiseOrValue<BigNumberish>, expiry: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        delegates(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        deposit(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        executeWithdrawal(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getBlockNumberOrTimestamp(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCurrentVotes(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getEligibleWithdrawalAmount(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPriorVotes(account: PromiseOrValue<string>, blockNumberOrSecond: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRequestedAmount(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserInfo(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getWithdrawalRequests(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        implementation(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initializeTimeManager(timeBased_: PromiseOrValue<boolean>, blocksPerYear_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isStakedToken(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isTimeBased(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        nonces(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        numCheckpoints(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        pendingAdmin(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingReward(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingRewardTransfers(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingWithdrawalsBeforeUpgrade(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingXVSVaultImplementation(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolInfos(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolLength(rewardToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        primePoolId(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        primeRewardToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        primeToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        requestWithdrawal(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        resume(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        rewardTokenAmountsPerBlock(_rewardToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        rewardTokenAmountsPerBlockOrSecond(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        set(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _allocPoint: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setAccessControl(newAccessControlAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setPrimeToken(_primeToken: PromiseOrValue<string>, _primeRewardToken: PromiseOrValue<string>, _primePoolId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setRewardAmountPerBlockOrSecond(_rewardToken: PromiseOrValue<string>, _rewardAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setWithdrawalLockingPeriod(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, _newPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setXvsStore(_xvs: PromiseOrValue<string>, _xvsStore: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        totalAllocPoints(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalPendingWithdrawals(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        updatePool(_rewardToken: PromiseOrValue<string>, _pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        vaultPaused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        xvsAddress(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        xvsStore(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
