import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from 'ethers';
import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi';
import type { Listener, Provider } from '@ethersproject/providers';
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common';
export declare type RewardsStruct = {
    totalUnvested: PromiseOrValue<BigNumberish>;
    totalVested: PromiseOrValue<BigNumberish>;
    totalPreviouslyVested: PromiseOrValue<BigNumberish>;
    totalClaimed: PromiseOrValue<BigNumberish>;
    startTime: PromiseOrValue<BigNumberish>;
    endTime: PromiseOrValue<BigNumberish>;
};
export declare type RewardsStructOutput = [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & {
    totalUnvested: BigNumber;
    totalVested: BigNumber;
    totalPreviouslyVested: BigNumber;
    totalClaimed: BigNumber;
    startTime: BigNumber;
    endTime: BigNumber;
};
export declare type StakedPositionStruct = {
    amount: PromiseOrValue<BigNumberish>;
    rewards: RewardsStruct;
    leverageMultiplier: PromiseOrValue<BigNumberish>;
    lockedUntil: PromiseOrValue<BigNumberish>;
    positionType: PromiseOrValue<BigNumberish>;
    unsafeEffectiveMultiplier: PromiseOrValue<BigNumberish>;
    unsafeBaseTokenExchangeRate: PromiseOrValue<BigNumberish>;
};
export declare type StakedPositionStructOutput = [
    BigNumber,
    RewardsStructOutput,
    BigNumber,
    BigNumber,
    number,
    BigNumber,
    BigNumber
] & {
    amount: BigNumber;
    rewards: RewardsStructOutput;
    leverageMultiplier: BigNumber;
    lockedUntil: BigNumber;
    positionType: number;
    unsafeEffectiveMultiplier: BigNumber;
    unsafeBaseTokenExchangeRate: BigNumber;
};
export interface GoldfinchStakingRewardsInterface extends utils.Interface {
    functions: {
        'DEFAULT_ADMIN_ROLE()': FunctionFragment;
        'MINTER_ROLE()': FunctionFragment;
        'OWNER_ROLE()': FunctionFragment;
        'PAUSER_ROLE()': FunctionFragment;
        '__initialize__(address,address)': FunctionFragment;
        '_tokenIdTracker()': FunctionFragment;
        'accumulatedRewardsPerToken()': FunctionFragment;
        'addToStake(uint256,uint256)': FunctionFragment;
        'approve(address,uint256)': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'baseURI()': FunctionFragment;
        'claimableRewards(uint256)': FunctionFragment;
        'config()': FunctionFragment;
        'currentEarnRatePerToken()': FunctionFragment;
        'depositAndStake(uint256)': FunctionFragment;
        'depositToCurve(uint256,uint256)': FunctionFragment;
        'depositToCurveAndStake(uint256,uint256)': FunctionFragment;
        'depositToCurveAndStakeFrom(address,uint256,uint256)': FunctionFragment;
        'depositWithPermitAndStake(uint256,uint256,uint8,bytes32,bytes32)': FunctionFragment;
        'earnedSinceLastCheckpoint(uint256)': FunctionFragment;
        'getApproved(uint256)': FunctionFragment;
        'getBaseTokenExchangeRate(uint8)': FunctionFragment;
        'getEffectiveMultiplierForPositionType(uint8)': FunctionFragment;
        'getPosition(uint256)': FunctionFragment;
        'getReward(uint256)': FunctionFragment;
        'getRoleAdmin(bytes32)': FunctionFragment;
        'getRoleMember(bytes32,uint256)': FunctionFragment;
        'getRoleMemberCount(bytes32)': FunctionFragment;
        'grantRole(bytes32,address)': FunctionFragment;
        'hasRole(bytes32,address)': FunctionFragment;
        'isApprovedForAll(address,address)': FunctionFragment;
        'kick(uint256)': FunctionFragment;
        'lastUpdateTime()': FunctionFragment;
        'loadRewards(uint256)': FunctionFragment;
        'maxRate()': FunctionFragment;
        'maxRateAtPercent()': FunctionFragment;
        'minRate()': FunctionFragment;
        'minRateAtPercent()': FunctionFragment;
        'name()': FunctionFragment;
        'optimisticClaimable(uint256)': FunctionFragment;
        'ownerOf(uint256)': FunctionFragment;
        'pause()': FunctionFragment;
        'paused()': FunctionFragment;
        'positionCurrentEarnRate(uint256)': FunctionFragment;
        'positionToAccumulatedRewardsPerToken(uint256)': FunctionFragment;
        'positions(uint256)': FunctionFragment;
        'renounceRole(bytes32,address)': FunctionFragment;
        'revokeRole(bytes32,address)': FunctionFragment;
        'rewardPerToken()': FunctionFragment;
        'rewardsAvailable()': FunctionFragment;
        'safeTransferFrom(address,address,uint256)': FunctionFragment;
        'safeTransferFrom(address,address,uint256,bytes)': FunctionFragment;
        'setApprovalForAll(address,bool)': FunctionFragment;
        'setBaseURI(string)': FunctionFragment;
        'setEffectiveMultiplier(uint256,uint8)': FunctionFragment;
        'setRewardsParameters(uint256,uint256,uint256,uint256,uint256)': FunctionFragment;
        'stake(uint256,uint8)': FunctionFragment;
        'stakedBalanceOf(uint256)': FunctionFragment;
        'supportsInterface(bytes4)': FunctionFragment;
        'symbol()': FunctionFragment;
        'targetCapacity()': FunctionFragment;
        'tokenByIndex(uint256)': FunctionFragment;
        'tokenOfOwnerByIndex(address,uint256)': FunctionFragment;
        'tokenURI(uint256)': FunctionFragment;
        'totalOptimisticClaimable(address)': FunctionFragment;
        'totalStakedSupply()': FunctionFragment;
        'totalSupply()': FunctionFragment;
        'totalVestedAt(uint256,uint256,uint256,uint256)': FunctionFragment;
        'transferFrom(address,address,uint256)': FunctionFragment;
        'unpause()': FunctionFragment;
        'unstake(uint256,uint256)': FunctionFragment;
        'unstakeMultiple(uint256[],uint256[])': FunctionFragment;
        'updatePositionEffectiveMultiplier(uint256)': FunctionFragment;
        'vestingLength()': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'DEFAULT_ADMIN_ROLE' | 'MINTER_ROLE' | 'OWNER_ROLE' | 'PAUSER_ROLE' | '__initialize__' | '_tokenIdTracker' | 'accumulatedRewardsPerToken' | 'addToStake' | 'approve' | 'balanceOf' | 'baseURI' | 'claimableRewards' | 'config' | 'currentEarnRatePerToken' | 'depositAndStake' | 'depositToCurve' | 'depositToCurveAndStake' | 'depositToCurveAndStakeFrom' | 'depositWithPermitAndStake' | 'earnedSinceLastCheckpoint' | 'getApproved' | 'getBaseTokenExchangeRate' | 'getEffectiveMultiplierForPositionType' | 'getPosition' | 'getReward' | 'getRoleAdmin' | 'getRoleMember' | 'getRoleMemberCount' | 'grantRole' | 'hasRole' | 'isApprovedForAll' | 'kick' | 'lastUpdateTime' | 'loadRewards' | 'maxRate' | 'maxRateAtPercent' | 'minRate' | 'minRateAtPercent' | 'name' | 'optimisticClaimable' | 'ownerOf' | 'pause' | 'paused' | 'positionCurrentEarnRate' | 'positionToAccumulatedRewardsPerToken' | 'positions' | 'renounceRole' | 'revokeRole' | 'rewardPerToken' | 'rewardsAvailable' | 'safeTransferFrom(address,address,uint256)' | 'safeTransferFrom(address,address,uint256,bytes)' | 'setApprovalForAll' | 'setBaseURI' | 'setEffectiveMultiplier' | 'setRewardsParameters' | 'stake' | 'stakedBalanceOf' | 'supportsInterface' | 'symbol' | 'targetCapacity' | 'tokenByIndex' | 'tokenOfOwnerByIndex' | 'tokenURI' | 'totalOptimisticClaimable' | 'totalStakedSupply' | 'totalSupply' | 'totalVestedAt' | 'transferFrom' | 'unpause' | 'unstake' | 'unstakeMultiple' | 'updatePositionEffectiveMultiplier' | 'vestingLength'): FunctionFragment;
    encodeFunctionData(functionFragment: 'DEFAULT_ADMIN_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MINTER_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'OWNER_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'PAUSER_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: '__initialize__', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: '_tokenIdTracker', values?: undefined): string;
    encodeFunctionData(functionFragment: 'accumulatedRewardsPerToken', values?: undefined): string;
    encodeFunctionData(functionFragment: 'addToStake', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'approve', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'baseURI', values?: undefined): string;
    encodeFunctionData(functionFragment: 'claimableRewards', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'config', values?: undefined): string;
    encodeFunctionData(functionFragment: 'currentEarnRatePerToken', values?: undefined): string;
    encodeFunctionData(functionFragment: 'depositAndStake', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'depositToCurve', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'depositToCurveAndStake', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'depositToCurveAndStakeFrom', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'depositWithPermitAndStake', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: 'earnedSinceLastCheckpoint', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getApproved', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getBaseTokenExchangeRate', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getEffectiveMultiplierForPositionType', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getPosition', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getReward', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getRoleAdmin', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'getRoleMember', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getRoleMemberCount', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'grantRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'hasRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isApprovedForAll', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'kick', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'lastUpdateTime', values?: undefined): string;
    encodeFunctionData(functionFragment: 'loadRewards', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'maxRate', values?: undefined): string;
    encodeFunctionData(functionFragment: 'maxRateAtPercent', values?: undefined): string;
    encodeFunctionData(functionFragment: 'minRate', values?: undefined): string;
    encodeFunctionData(functionFragment: 'minRateAtPercent', values?: undefined): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'optimisticClaimable', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'ownerOf', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'pause', values?: undefined): string;
    encodeFunctionData(functionFragment: 'paused', values?: undefined): string;
    encodeFunctionData(functionFragment: 'positionCurrentEarnRate', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'positionToAccumulatedRewardsPerToken', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'positions', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'renounceRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'revokeRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'rewardPerToken', values?: undefined): string;
    encodeFunctionData(functionFragment: 'rewardsAvailable', values?: undefined): string;
    encodeFunctionData(functionFragment: 'safeTransferFrom(address,address,uint256)', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'safeTransferFrom(address,address,uint256,bytes)', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'setApprovalForAll', values: [PromiseOrValue<string>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setBaseURI', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setEffectiveMultiplier', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setRewardsParameters', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'stake', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'stakedBalanceOf', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'supportsInterface', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'symbol', values?: undefined): string;
    encodeFunctionData(functionFragment: 'targetCapacity', values?: undefined): string;
    encodeFunctionData(functionFragment: 'tokenByIndex', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'tokenOfOwnerByIndex', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'tokenURI', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'totalOptimisticClaimable', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'totalStakedSupply', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalVestedAt', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'transferFrom', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'unpause', values?: undefined): string;
    encodeFunctionData(functionFragment: 'unstake', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'unstakeMultiple', values: [PromiseOrValue<BigNumberish>[], PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: 'updatePositionEffectiveMultiplier', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'vestingLength', values?: undefined): string;
    decodeFunctionResult(functionFragment: 'DEFAULT_ADMIN_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MINTER_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'OWNER_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'PAUSER_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: '__initialize__', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: '_tokenIdTracker', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'accumulatedRewardsPerToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addToStake', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'baseURI', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimableRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'config', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'currentEarnRatePerToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositAndStake', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositToCurve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositToCurveAndStake', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositToCurveAndStakeFrom', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositWithPermitAndStake', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'earnedSinceLastCheckpoint', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getApproved', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getBaseTokenExchangeRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getEffectiveMultiplierForPositionType', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPosition', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getReward', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRoleAdmin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRoleMember', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRoleMemberCount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'grantRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hasRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isApprovedForAll', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'kick', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lastUpdateTime', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'loadRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxRateAtPercent', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'minRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'minRateAtPercent', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'optimisticClaimable', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ownerOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pause', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'positionCurrentEarnRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'positionToAccumulatedRewardsPerToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'positions', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'revokeRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'rewardPerToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'rewardsAvailable', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'safeTransferFrom(address,address,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'safeTransferFrom(address,address,uint256,bytes)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setApprovalForAll', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setBaseURI', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setEffectiveMultiplier', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setRewardsParameters', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stake', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakedBalanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'supportsInterface', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'targetCapacity', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'tokenByIndex', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'tokenOfOwnerByIndex', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'tokenURI', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalOptimisticClaimable', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalStakedSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalVestedAt', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unpause', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unstake', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unstakeMultiple', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updatePositionEffectiveMultiplier', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'vestingLength', data: BytesLike): Result;
    events: {
        'AddToStake(address,uint256,uint256,uint8)': EventFragment;
        'Approval(address,address,uint256)': EventFragment;
        'ApprovalForAll(address,address,bool)': EventFragment;
        'DepositedAndStaked(address,uint256,uint256,uint256)': EventFragment;
        'DepositedToCurve(address,uint256,uint256,uint256)': EventFragment;
        'DepositedToCurveAndStaked(address,uint256,uint256,uint256,uint256)': EventFragment;
        'EffectiveMultiplierUpdated(address,uint8,uint256)': EventFragment;
        'Paused(address)': EventFragment;
        'RewardAdded(uint256)': EventFragment;
        'RewardPaid(address,uint256,uint256)': EventFragment;
        'RewardsParametersUpdated(address,uint256,uint256,uint256,uint256,uint256)': EventFragment;
        'RoleGranted(bytes32,address,address)': EventFragment;
        'RoleRevoked(bytes32,address,address)': EventFragment;
        'Staked(address,uint256,uint256,uint8,uint256)': EventFragment;
        'Transfer(address,address,uint256)': EventFragment;
        'Unpaused(address)': EventFragment;
        'Unstaked(address,uint256,uint256,uint8)': EventFragment;
        'UnstakedMultiple(address,uint256[],uint256[])': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'AddToStake'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ApprovalForAll'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DepositedAndStaked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DepositedToCurve'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DepositedToCurveAndStaked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'EffectiveMultiplierUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Paused'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RewardAdded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RewardPaid'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RewardsParametersUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleGranted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleRevoked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Staked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Unpaused'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Unstaked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UnstakedMultiple'): EventFragment;
}
export interface AddToStakeEventObject {
    user: string;
    tokenId: BigNumber;
    amount: BigNumber;
    positionType: number;
}
export declare type AddToStakeEvent = TypedEvent<[string, BigNumber, BigNumber, number], AddToStakeEventObject>;
export declare type AddToStakeEventFilter = TypedEventFilter<AddToStakeEvent>;
export interface ApprovalEventObject {
    owner: string;
    approved: string;
    tokenId: BigNumber;
}
export declare type ApprovalEvent = TypedEvent<[string, string, BigNumber], ApprovalEventObject>;
export declare type ApprovalEventFilter = TypedEventFilter<ApprovalEvent>;
export interface ApprovalForAllEventObject {
    owner: string;
    operator: string;
    approved: boolean;
}
export declare type ApprovalForAllEvent = TypedEvent<[string, string, boolean], ApprovalForAllEventObject>;
export declare type ApprovalForAllEventFilter = TypedEventFilter<ApprovalForAllEvent>;
export interface DepositedAndStakedEventObject {
    user: string;
    depositedAmount: BigNumber;
    tokenId: BigNumber;
    amount: BigNumber;
}
export declare type DepositedAndStakedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber
], DepositedAndStakedEventObject>;
export declare type DepositedAndStakedEventFilter = TypedEventFilter<DepositedAndStakedEvent>;
export interface DepositedToCurveEventObject {
    user: string;
    fiduAmount: BigNumber;
    usdcAmount: BigNumber;
    tokensReceived: BigNumber;
}
export declare type DepositedToCurveEvent = TypedEvent<[string, BigNumber, BigNumber, BigNumber], DepositedToCurveEventObject>;
export declare type DepositedToCurveEventFilter = TypedEventFilter<DepositedToCurveEvent>;
export interface DepositedToCurveAndStakedEventObject {
    user: string;
    fiduAmount: BigNumber;
    usdcAmount: BigNumber;
    tokenId: BigNumber;
    amount: BigNumber;
}
export declare type DepositedToCurveAndStakedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], DepositedToCurveAndStakedEventObject>;
export declare type DepositedToCurveAndStakedEventFilter = TypedEventFilter<DepositedToCurveAndStakedEvent>;
export interface EffectiveMultiplierUpdatedEventObject {
    who: string;
    positionType: number;
    multiplier: BigNumber;
}
export declare type EffectiveMultiplierUpdatedEvent = TypedEvent<[
    string,
    number,
    BigNumber
], EffectiveMultiplierUpdatedEventObject>;
export declare type EffectiveMultiplierUpdatedEventFilter = TypedEventFilter<EffectiveMultiplierUpdatedEvent>;
export interface PausedEventObject {
    account: string;
}
export declare type PausedEvent = TypedEvent<[string], PausedEventObject>;
export declare type PausedEventFilter = TypedEventFilter<PausedEvent>;
export interface RewardAddedEventObject {
    reward: BigNumber;
}
export declare type RewardAddedEvent = TypedEvent<[BigNumber], RewardAddedEventObject>;
export declare type RewardAddedEventFilter = TypedEventFilter<RewardAddedEvent>;
export interface RewardPaidEventObject {
    user: string;
    tokenId: BigNumber;
    reward: BigNumber;
}
export declare type RewardPaidEvent = TypedEvent<[string, BigNumber, BigNumber], RewardPaidEventObject>;
export declare type RewardPaidEventFilter = TypedEventFilter<RewardPaidEvent>;
export interface RewardsParametersUpdatedEventObject {
    who: string;
    targetCapacity: BigNumber;
    minRate: BigNumber;
    maxRate: BigNumber;
    minRateAtPercent: BigNumber;
    maxRateAtPercent: BigNumber;
}
export declare type RewardsParametersUpdatedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], RewardsParametersUpdatedEventObject>;
export declare type RewardsParametersUpdatedEventFilter = TypedEventFilter<RewardsParametersUpdatedEvent>;
export interface RoleGrantedEventObject {
    role: string;
    account: string;
    sender: string;
}
export declare type RoleGrantedEvent = TypedEvent<[string, string, string], RoleGrantedEventObject>;
export declare type RoleGrantedEventFilter = TypedEventFilter<RoleGrantedEvent>;
export interface RoleRevokedEventObject {
    role: string;
    account: string;
    sender: string;
}
export declare type RoleRevokedEvent = TypedEvent<[string, string, string], RoleRevokedEventObject>;
export declare type RoleRevokedEventFilter = TypedEventFilter<RoleRevokedEvent>;
export interface StakedEventObject {
    user: string;
    tokenId: BigNumber;
    amount: BigNumber;
    positionType: number;
    baseTokenExchangeRate: BigNumber;
}
export declare type StakedEvent = TypedEvent<[string, BigNumber, BigNumber, number, BigNumber], StakedEventObject>;
export declare type StakedEventFilter = TypedEventFilter<StakedEvent>;
export interface TransferEventObject {
    from: string;
    to: string;
    tokenId: BigNumber;
}
export declare type TransferEvent = TypedEvent<[string, string, BigNumber], TransferEventObject>;
export declare type TransferEventFilter = TypedEventFilter<TransferEvent>;
export interface UnpausedEventObject {
    account: string;
}
export declare type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>;
export declare type UnpausedEventFilter = TypedEventFilter<UnpausedEvent>;
export interface UnstakedEventObject {
    user: string;
    tokenId: BigNumber;
    amount: BigNumber;
    positionType: number;
}
export declare type UnstakedEvent = TypedEvent<[string, BigNumber, BigNumber, number], UnstakedEventObject>;
export declare type UnstakedEventFilter = TypedEventFilter<UnstakedEvent>;
export interface UnstakedMultipleEventObject {
    user: string;
    tokenIds: BigNumber[];
    amounts: BigNumber[];
}
export declare type UnstakedMultipleEvent = TypedEvent<[string, BigNumber[], BigNumber[]], UnstakedMultipleEventObject>;
export declare type UnstakedMultipleEventFilter = TypedEventFilter<UnstakedMultipleEvent>;
export interface GoldfinchStakingRewards extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: GoldfinchStakingRewardsInterface;
    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: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<[string]>;
        MINTER_ROLE(overrides?: CallOverrides): Promise<[string]>;
        OWNER_ROLE(overrides?: CallOverrides): Promise<[string]>;
        PAUSER_ROLE(overrides?: CallOverrides): Promise<[string]>;
        __initialize__(owner: PromiseOrValue<string>, _config: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        _tokenIdTracker(overrides?: CallOverrides): Promise<[BigNumber] & {
            _value: BigNumber;
        }>;
        accumulatedRewardsPerToken(overrides?: CallOverrides): Promise<[BigNumber]>;
        addToStake(tokenId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        approve(to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        baseURI(overrides?: CallOverrides): Promise<[string]>;
        claimableRewards(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            rewards: BigNumber;
        }>;
        config(overrides?: CallOverrides): Promise<[string]>;
        currentEarnRatePerToken(overrides?: CallOverrides): Promise<[BigNumber]>;
        depositAndStake(usdcAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        depositToCurve(fiduAmount: PromiseOrValue<BigNumberish>, usdcAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        depositToCurveAndStake(fiduAmount: PromiseOrValue<BigNumberish>, usdcAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        depositToCurveAndStakeFrom(nftRecipient: PromiseOrValue<string>, fiduAmount: PromiseOrValue<BigNumberish>, usdcAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        depositWithPermitAndStake(usdcAmount: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        earnedSinceLastCheckpoint(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getApproved(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        getBaseTokenExchangeRate(positionType: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getEffectiveMultiplierForPositionType(positionType: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getPosition(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[StakedPositionStructOutput] & {
            position: StakedPositionStructOutput;
        }>;
        getReward(tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        getRoleMemberCount(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber]>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        kick(tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        lastUpdateTime(overrides?: CallOverrides): Promise<[BigNumber]>;
        loadRewards(rewards: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        maxRate(overrides?: CallOverrides): Promise<[BigNumber]>;
        maxRateAtPercent(overrides?: CallOverrides): Promise<[BigNumber]>;
        minRate(overrides?: CallOverrides): Promise<[BigNumber]>;
        minRateAtPercent(overrides?: CallOverrides): Promise<[BigNumber]>;
        name(overrides?: CallOverrides): Promise<[string]>;
        optimisticClaimable(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        ownerOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        positionCurrentEarnRate(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        positionToAccumulatedRewardsPerToken(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        positions(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            RewardsStructOutput,
            BigNumber,
            BigNumber,
            number,
            BigNumber,
            BigNumber
        ] & {
            amount: BigNumber;
            rewards: RewardsStructOutput;
            leverageMultiplier: BigNumber;
            lockedUntil: BigNumber;
            positionType: number;
            unsafeEffectiveMultiplier: BigNumber;
            unsafeBaseTokenExchangeRate: BigNumber;
        }>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        rewardPerToken(overrides?: CallOverrides): Promise<[BigNumber]>;
        rewardsAvailable(overrides?: CallOverrides): Promise<[BigNumber]>;
        'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, _data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setBaseURI(baseURI_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setEffectiveMultiplier(multiplier: PromiseOrValue<BigNumberish>, positionType: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setRewardsParameters(_targetCapacity: PromiseOrValue<BigNumberish>, _minRate: PromiseOrValue<BigNumberish>, _maxRate: PromiseOrValue<BigNumberish>, _minRateAtPercent: PromiseOrValue<BigNumberish>, _maxRateAtPercent: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stake(amount: PromiseOrValue<BigNumberish>, positionType: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stakedBalanceOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        targetCapacity(overrides?: CallOverrides): Promise<[BigNumber]>;
        tokenByIndex(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        tokenOfOwnerByIndex(owner: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        tokenURI(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        totalOptimisticClaimable(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalStakedSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalVestedAt(start: PromiseOrValue<BigNumberish>, end: PromiseOrValue<BigNumberish>, time: PromiseOrValue<BigNumberish>, grantedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            rewards: BigNumber;
        }>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unstake(tokenId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unstakeMultiple(tokenIds: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updatePositionEffectiveMultiplier(tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        vestingLength(overrides?: CallOverrides): Promise<[BigNumber]>;
    };
    DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
    MINTER_ROLE(overrides?: CallOverrides): Promise<string>;
    OWNER_ROLE(overrides?: CallOverrides): Promise<string>;
    PAUSER_ROLE(overrides?: CallOverrides): Promise<string>;
    __initialize__(owner: PromiseOrValue<string>, _config: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    _tokenIdTracker(overrides?: CallOverrides): Promise<BigNumber>;
    accumulatedRewardsPerToken(overrides?: CallOverrides): Promise<BigNumber>;
    addToStake(tokenId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    approve(to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    baseURI(overrides?: CallOverrides): Promise<string>;
    claimableRewards(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    config(overrides?: CallOverrides): Promise<string>;
    currentEarnRatePerToken(overrides?: CallOverrides): Promise<BigNumber>;
    depositAndStake(usdcAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    depositToCurve(fiduAmount: PromiseOrValue<BigNumberish>, usdcAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    depositToCurveAndStake(fiduAmount: PromiseOrValue<BigNumberish>, usdcAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    depositToCurveAndStakeFrom(nftRecipient: PromiseOrValue<string>, fiduAmount: PromiseOrValue<BigNumberish>, usdcAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    depositWithPermitAndStake(usdcAmount: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    earnedSinceLastCheckpoint(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getApproved(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    getBaseTokenExchangeRate(positionType: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getEffectiveMultiplierForPositionType(positionType: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getPosition(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<StakedPositionStructOutput>;
    getReward(tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    getRoleMemberCount(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
    grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    kick(tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    lastUpdateTime(overrides?: CallOverrides): Promise<BigNumber>;
    loadRewards(rewards: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    maxRate(overrides?: CallOverrides): Promise<BigNumber>;
    maxRateAtPercent(overrides?: CallOverrides): Promise<BigNumber>;
    minRate(overrides?: CallOverrides): Promise<BigNumber>;
    minRateAtPercent(overrides?: CallOverrides): Promise<BigNumber>;
    name(overrides?: CallOverrides): Promise<string>;
    optimisticClaimable(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    ownerOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    pause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    positionCurrentEarnRate(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    positionToAccumulatedRewardsPerToken(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    positions(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        RewardsStructOutput,
        BigNumber,
        BigNumber,
        number,
        BigNumber,
        BigNumber
    ] & {
        amount: BigNumber;
        rewards: RewardsStructOutput;
        leverageMultiplier: BigNumber;
        lockedUntil: BigNumber;
        positionType: number;
        unsafeEffectiveMultiplier: BigNumber;
        unsafeBaseTokenExchangeRate: BigNumber;
    }>;
    renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    rewardPerToken(overrides?: CallOverrides): Promise<BigNumber>;
    rewardsAvailable(overrides?: CallOverrides): Promise<BigNumber>;
    'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, _data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setBaseURI(baseURI_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setEffectiveMultiplier(multiplier: PromiseOrValue<BigNumberish>, positionType: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setRewardsParameters(_targetCapacity: PromiseOrValue<BigNumberish>, _minRate: PromiseOrValue<BigNumberish>, _maxRate: PromiseOrValue<BigNumberish>, _minRateAtPercent: PromiseOrValue<BigNumberish>, _maxRateAtPercent: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stake(amount: PromiseOrValue<BigNumberish>, positionType: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stakedBalanceOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    symbol(overrides?: CallOverrides): Promise<string>;
    targetCapacity(overrides?: CallOverrides): Promise<BigNumber>;
    tokenByIndex(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    tokenOfOwnerByIndex(owner: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    tokenURI(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    totalOptimisticClaimable(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    totalStakedSupply(overrides?: CallOverrides): Promise<BigNumber>;
    totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
    totalVestedAt(start: PromiseOrValue<BigNumberish>, end: PromiseOrValue<BigNumberish>, time: PromiseOrValue<BigNumberish>, grantedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unpause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unstake(tokenId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unstakeMultiple(tokenIds: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updatePositionEffectiveMultiplier(tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    vestingLength(overrides?: CallOverrides): Promise<BigNumber>;
    callStatic: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
        MINTER_ROLE(overrides?: CallOverrides): Promise<string>;
        OWNER_ROLE(overrides?: CallOverrides): Promise<string>;
        PAUSER_ROLE(overrides?: CallOverrides): Promise<string>;
        __initialize__(owner: PromiseOrValue<string>, _config: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        _tokenIdTracker(overrides?: CallOverrides): Promise<BigNumber>;
        accumulatedRewardsPerToken(overrides?: CallOverrides): Promise<BigNumber>;
        addToStake(tokenId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        approve(to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        baseURI(overrides?: CallOverrides): Promise<string>;
        claimableRewards(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        config(overrides?: CallOverrides): Promise<string>;
        currentEarnRatePerToken(overrides?: CallOverrides): Promise<BigNumber>;
        depositAndStake(usdcAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        depositToCurve(fiduAmount: PromiseOrValue<BigNumberish>, usdcAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        depositToCurveAndStake(fiduAmount: PromiseOrValue<BigNumberish>, usdcAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        depositToCurveAndStakeFrom(nftRecipient: PromiseOrValue<string>, fiduAmount: PromiseOrValue<BigNumberish>, usdcAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        depositWithPermitAndStake(usdcAmount: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        earnedSinceLastCheckpoint(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getApproved(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        getBaseTokenExchangeRate(positionType: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getEffectiveMultiplierForPositionType(positionType: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getPosition(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<StakedPositionStructOutput>;
        getReward(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        getRoleMemberCount(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        kick(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        lastUpdateTime(overrides?: CallOverrides): Promise<BigNumber>;
        loadRewards(rewards: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        maxRate(overrides?: CallOverrides): Promise<BigNumber>;
        maxRateAtPercent(overrides?: CallOverrides): Promise<BigNumber>;
        minRate(overrides?: CallOverrides): Promise<BigNumber>;
        minRateAtPercent(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<string>;
        optimisticClaimable(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        ownerOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        pause(overrides?: CallOverrides): Promise<void>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        positionCurrentEarnRate(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        positionToAccumulatedRewardsPerToken(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        positions(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            RewardsStructOutput,
            BigNumber,
            BigNumber,
            number,
            BigNumber,
            BigNumber
        ] & {
            amount: BigNumber;
            rewards: RewardsStructOutput;
            leverageMultiplier: BigNumber;
            lockedUntil: BigNumber;
            positionType: number;
            unsafeEffectiveMultiplier: BigNumber;
            unsafeBaseTokenExchangeRate: BigNumber;
        }>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        rewardPerToken(overrides?: CallOverrides): Promise<BigNumber>;
        rewardsAvailable(overrides?: CallOverrides): Promise<BigNumber>;
        'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, _data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setBaseURI(baseURI_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setEffectiveMultiplier(multiplier: PromiseOrValue<BigNumberish>, positionType: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setRewardsParameters(_targetCapacity: PromiseOrValue<BigNumberish>, _minRate: PromiseOrValue<BigNumberish>, _maxRate: PromiseOrValue<BigNumberish>, _minRateAtPercent: PromiseOrValue<BigNumberish>, _maxRateAtPercent: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        stake(amount: PromiseOrValue<BigNumberish>, positionType: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        stakedBalanceOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        symbol(overrides?: CallOverrides): Promise<string>;
        targetCapacity(overrides?: CallOverrides): Promise<BigNumber>;
        tokenByIndex(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        tokenOfOwnerByIndex(owner: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        tokenURI(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        totalOptimisticClaimable(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalStakedSupply(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        totalVestedAt(start: PromiseOrValue<BigNumberish>, end: PromiseOrValue<BigNumberish>, time: PromiseOrValue<BigNumberish>, grantedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        unpause(overrides?: CallOverrides): Promise<void>;
        unstake(tokenId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        unstakeMultiple(tokenIds: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<void>;
        updatePositionEffectiveMultiplier(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        vestingLength(overrides?: CallOverrides): Promise<BigNumber>;
    };
    filters: {
        'AddToStake(address,uint256,uint256,uint8)'(user?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null, amount?: null, positionType?: null): AddToStakeEventFilter;
        AddToStake(user?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null, amount?: null, positionType?: null): AddToStakeEventFilter;
        'Approval(address,address,uint256)'(owner?: PromiseOrValue<string> | null, approved?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null): ApprovalEventFilter;
        Approval(owner?: PromiseOrValue<string> | null, approved?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null): ApprovalEventFilter;
        'ApprovalForAll(address,address,bool)'(owner?: PromiseOrValue<string> | null, operator?: PromiseOrValue<string> | null, approved?: null): ApprovalForAllEventFilter;
        ApprovalForAll(owner?: PromiseOrValue<string> | null, operator?: PromiseOrValue<string> | null, approved?: null): ApprovalForAllEventFilter;
        'DepositedAndStaked(address,uint256,uint256,uint256)'(user?: PromiseOrValue<string> | null, depositedAmount?: null, tokenId?: PromiseOrValue<BigNumberish> | null, amount?: null): DepositedAndStakedEventFilter;
        DepositedAndStaked(user?: PromiseOrValue<string> | null, depositedAmount?: null, tokenId?: PromiseOrValue<BigNumberish> | null, amount?: null): DepositedAndStakedEventFilter;
        'DepositedToCurve(address,uint256,uint256,uint256)'(user?: PromiseOrValue<string> | null, fiduAmount?: null, usdcAmount?: null, tokensReceived?: null): DepositedToCurveEventFilter;
        DepositedToCurve(user?: PromiseOrValue<string> | null, fiduAmount?: null, usdcAmount?: null, tokensReceived?: null): DepositedToCurveEventFilter;
        'DepositedToCurveAndStaked(address,uint256,uint256,uint256,uint256)'(user?: PromiseOrValue<string> | null, fiduAmount?: null, usdcAmount?: null, tokenId?: PromiseOrValue<BigNumberish> | null, amount?: null): DepositedToCurveAndStakedEventFilter;
        DepositedToCurveAndStaked(user?: PromiseOrValue<string> | null, fiduAmount?: null, usdcAmount?: null, tokenId?: PromiseOrValue<BigNumberish> | null, amount?: null): DepositedToCurveAndStakedEventFilter;
        'EffectiveMultiplierUpdated(address,uint8,uint256)'(who?: PromiseOrValue<string> | null, positionType?: null, multiplier?: null): EffectiveMultiplierUpdatedEventFilter;
        EffectiveMultiplierUpdated(who?: PromiseOrValue<string> | null, positionType?: null, multiplier?: null): EffectiveMultiplierUpdatedEventFilter;
        'Paused(address)'(account?: null): PausedEventFilter;
        Paused(account?: null): PausedEventFilter;
        'RewardAdded(uint256)'(reward?: null): RewardAddedEventFilter;
        RewardAdded(reward?: null): RewardAddedEventFilter;
        'RewardPaid(address,uint256,uint256)'(user?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null, reward?: null): RewardPaidEventFilter;
        RewardPaid(user?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null, reward?: null): RewardPaidEventFilter;
        'RewardsParametersUpdated(address,uint256,uint256,uint256,uint256,uint256)'(who?: PromiseOrValue<string> | null, targetCapacity?: null, minRate?: null, maxRate?: null, minRateAtPercent?: null, maxRateAtPercent?: null): RewardsParametersUpdatedEventFilter;
        RewardsParametersUpdated(who?: PromiseOrValue<string> | null, targetCapacity?: null, minRate?: null, maxRate?: null, minRateAtPercent?: null, maxRateAtPercent?: null): RewardsParametersUpdatedEventFilter;
        'RoleGranted(bytes32,address,address)'(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleGrantedEventFilter;
        RoleGranted(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleGrantedEventFilter;
        'RoleRevoked(bytes32,address,address)'(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleRevokedEventFilter;
        RoleRevoked(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleRevokedEventFilter;
        'Staked(address,uint256,uint256,uint8,uint256)'(user?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null, amount?: null, positionType?: null, baseTokenExchangeRate?: null): StakedEventFilter;
        Staked(user?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null, amount?: null, positionType?: null, baseTokenExchangeRate?: null): StakedEventFilter;
        'Transfer(address,address,uint256)'(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null): TransferEventFilter;
        Transfer(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null): TransferEventFilter;
        'Unpaused(address)'(account?: null): UnpausedEventFilter;
        Unpaused(account?: null): UnpausedEventFilter;
        'Unstaked(address,uint256,uint256,uint8)'(user?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null, amount?: null, positionType?: null): UnstakedEventFilter;
        Unstaked(user?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null, amount?: null, positionType?: null): UnstakedEventFilter;
        'UnstakedMultiple(address,uint256[],uint256[])'(user?: PromiseOrValue<string> | null, tokenIds?: null, amounts?: null): UnstakedMultipleEventFilter;
        UnstakedMultiple(user?: PromiseOrValue<string> | null, tokenIds?: null, amounts?: null): UnstakedMultipleEventFilter;
    };
    estimateGas: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        MINTER_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        OWNER_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        PAUSER_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        __initialize__(owner: PromiseOrValue<string>, _config: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        _tokenIdTracker(overrides?: CallOverrides): Promise<BigNumber>;
        accumulatedRewardsPerToken(overrides?: CallOverrides): Promise<BigNumber>;
        addToStake(tokenId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        approve(to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        baseURI(overrides?: CallOverrides): Promise<BigNumber>;
        claimableRewards(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        config(overrides?: CallOverrides): Promise<BigNumber>;
        currentEarnRatePerToken(overrides?: CallOverrides): Promise<BigNumber>;
        depositAndStake(usdcAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        depositToCurve(fiduAmount: PromiseOrValue<BigNumberish>, usdcAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        depositToCurveAndStake(fiduAmount: PromiseOrValue<BigNumberish>, usdcAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        depositToCurveAndStakeFrom(nftRecipient: PromiseOrValue<string>, fiduAmount: PromiseOrValue<BigNumberish>, usdcAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        depositWithPermitAndStake(usdcAmount: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        earnedSinceLastCheckpoint(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getApproved(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getBaseTokenExchangeRate(positionType: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getEffectiveMultiplierForPositionType(positionType: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getPosition(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getReward(tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getRoleMemberCount(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        kick(tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        lastUpdateTime(overrides?: CallOverrides): Promise<BigNumber>;
        loadRewards(rewards: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        maxRate(overrides?: CallOverrides): Promise<BigNumber>;
        maxRateAtPercent(overrides?: CallOverrides): Promise<BigNumber>;
        minRate(overrides?: CallOverrides): Promise<BigNumber>;
        minRateAtPercent(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        optimisticClaimable(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        ownerOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        positionCurrentEarnRate(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        positionToAccumulatedRewardsPerToken(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        positions(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        rewardPerToken(overrides?: CallOverrides): Promise<BigNumber>;
        rewardsAvailable(overrides?: CallOverrides): Promise<BigNumber>;
        'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, _data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setBaseURI(baseURI_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setEffectiveMultiplier(multiplier: PromiseOrValue<BigNumberish>, positionType: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setRewardsParameters(_targetCapacity: PromiseOrValue<BigNumberish>, _minRate: PromiseOrValue<BigNumberish>, _maxRate: PromiseOrValue<BigNumberish>, _minRateAtPercent: PromiseOrValue<BigNumberish>, _maxRateAtPercent: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stake(amount: PromiseOrValue<BigNumberish>, positionType: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stakedBalanceOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        targetCapacity(overrides?: CallOverrides): Promise<BigNumber>;
        tokenByIndex(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        tokenOfOwnerByIndex(owner: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        tokenURI(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalOptimisticClaimable(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalStakedSupply(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        totalVestedAt(start: PromiseOrValue<BigNumberish>, end: PromiseOrValue<BigNumberish>, time: PromiseOrValue<BigNumberish>, grantedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unstake(tokenId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unstakeMultiple(tokenIds: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updatePositionEffectiveMultiplier(tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        vestingLength(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MINTER_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        OWNER_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        PAUSER_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        __initialize__(owner: PromiseOrValue<string>, _config: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        _tokenIdTracker(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        accumulatedRewardsPerToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        addToStake(tokenId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        approve(to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        baseURI(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claimableRewards(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        config(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        currentEarnRatePerToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        depositAndStake(usdcAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        depositToCurve(fiduAmount: PromiseOrValue<BigNumberish>, usdcAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        depositToCurveAndStake(fiduAmount: PromiseOrValue<BigNumberish>, usdcAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        depositToCurveAndStakeFrom(nftRecipient: PromiseOrValue<string>, fiduAmount: PromiseOrValue<BigNumberish>, usdcAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        depositWithPermitAndStake(usdcAmount: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        earnedSinceLastCheckpoint(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getApproved(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getBaseTokenExchangeRate(positionType: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getEffectiveMultiplierForPositionType(positionType: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPosition(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getReward(tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleMemberCount(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        kick(tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        lastUpdateTime(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        loadRewards(rewards: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        maxRate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxRateAtPercent(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        minRate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        minRateAtPercent(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        optimisticClaimable(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ownerOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        positionCurrentEarnRate(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        positionToAccumulatedRewardsPerToken(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        positions(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        rewardPerToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        rewardsAvailable(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, _data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setBaseURI(baseURI_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setEffectiveMultiplier(multiplier: PromiseOrValue<BigNumberish>, positionType: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setRewardsParameters(_targetCapacity: PromiseOrValue<BigNumberish>, _minRate: PromiseOrValue<BigNumberish>, _maxRate: PromiseOrValue<BigNumberish>, _minRateAtPercent: PromiseOrValue<BigNumberish>, _maxRateAtPercent: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stake(amount: PromiseOrValue<BigNumberish>, positionType: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stakedBalanceOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        targetCapacity(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tokenByIndex(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tokenOfOwnerByIndex(owner: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tokenURI(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalOptimisticClaimable(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalStakedSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalVestedAt(start: PromiseOrValue<BigNumberish>, end: PromiseOrValue<BigNumberish>, time: PromiseOrValue<BigNumberish>, grantedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unstake(tokenId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unstakeMultiple(tokenIds: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updatePositionEffectiveMultiplier(tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        vestingLength(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
