import { Interface } from '@ethersproject/abi';
import { TClaimAllRewardsParams, TClaimRewardParams, TCreateIncentiveParams, TStakeTokenParams, TUnstakeTokenParams, TWithdrawTokenParams } from '../../types/staker';
export declare abstract class UniswapV3Staker {
    static readonly INTERFACE: Interface;
    /**
     * Cannot be constructed.
     */
    private constructor();
    /**
     * Encodes the contract interaction calldata to create an incentive for a pool.
     * @param pool address of the pool to incentivize.
     * @param startTime start time of the incentive.
     * @param reward reward amount for the incentive.
     * @returns the encoded calldata for the createIncentive action.
     */
    static encodeCreateIncentiveCalldata({ pool, startTime, reward }: TCreateIncentiveParams): string;
    /**
     * Encodes the contract interaction calldata to withdraw a token from the staker.
     * @param tokenId id of the token to withdraw.
     * @param to address to withdraw the token to.
     * @returns the encoded calldata for the withdrawToken action.
     */
    static encodeWithdrawTokenCalldata({ tokenId, to }: TWithdrawTokenParams): string;
    /**
     * Encodes the contract interaction calldata to unstake a token from the staker.
     * @param tokenId id of the token to unstake.
     * @returns the encoded calldata for the unstakeToken action.
     */
    static encodeUnstakeTokenCalldata({ tokenId }: TUnstakeTokenParams): string;
    /**
     * Encodes the contract interaction calldata to stake a token in the staker.
     * @param tokenId id of the token to stake.
     * @returns the encoded calldata for the stake action.
     */
    static encodeStakeTokenCalldata({ tokenId }: TStakeTokenParams): string;
    /**
     * Encodes the contract interaction calldata to restake a token in the staker.
     * @param tokenId id of the token to restake.
     * @returns the encoded calldata for the restake action.
     */
    static encodeRestakeTokenCalldata({ tokenId }: TStakeTokenParams): string;
    /**
     * Encodes the contract interaction calldata to claim reward from the staker.
     * @param recipient address of the recipient of the reward.
     * @param amount amount of reward to claim.
     * @returns the encoded calldata for the claimReward action.
     */
    static encodeClaimRewardCalldata({ recipient, amount }: TClaimRewardParams): string;
    /**
     * Encodes the contract interaction calldata to claim all rewards from the staker.
     * @param recipient address of the recipient of the reward.
     * @returns the encoded calldata for the claimAllRewards action.
     */
    static encodeClaimAllRewardsCalldata({ recipient }: TClaimAllRewardsParams): string;
}
