/// <reference types="react" />
import { BigNumber } from '@ethersproject/bignumber';
import { TokenAmount } from '@envanik/sdk';
import { Position } from '../types';
export declare function useSarStakeInfo(): {
    apr: BigNumber | null;
    totalStaked: TokenAmount;
    sumOfEntryTimes: BigNumber;
    rewardRate: BigNumber | import("ethers").BigNumber;
    weeklyPNG: BigNumber | import("ethers").BigNumber;
};
/**
 *
 * @param positionId Id of a Position
 * @returns Return some utils functions for stake more or create a new Position
 */
export declare function useDerivativeSarStake(position?: Position | null): {
    attempting: boolean;
    typedValue: string;
    parsedAmount: import("@envanik/sdk").CurrencyAmount | undefined;
    hash: string | null;
    stepIndex: number;
    dollerWorth: number | undefined;
    error: string | undefined;
    approval: import("../../..").TransactionApprovalState;
    account: string | null | undefined;
    png: import("@envanik/sdk").Token;
    stakeError: string | null;
    onAttemptToApprove: () => Promise<void>;
    onUserInput: (_typedValue: string) => void;
    wrappedOnDismiss: () => void;
    handleMax: () => void;
    onStake: () => Promise<void>;
    onChangePercentage: (value: number) => void;
    setStepIndex: import("react").Dispatch<import("react").SetStateAction<number>>;
};
/**
 *
 * @param position Id of a Posttion
 * @returns Return some utils functions for unstake
 */
export declare function useDerivativeSarUnstake(position: Position | null): {
    attempting: boolean;
    hash: string | null;
    stepIndex: number;
    typedValue: string;
    parsedAmount: import("@envanik/sdk").CurrencyAmount | undefined;
    error: string | undefined;
    unstakeError: string | null;
    onUserInput: (_typedValue: string) => void;
    wrappedOnDismiss: () => void;
    handleMax: () => void;
    onUnstake: () => Promise<void>;
    onChangePercentage: (value: number) => void;
    setStepIndex: import("react").Dispatch<import("react").SetStateAction<number>>;
};
export declare function useDerivativeSarCompound(position: Position | null): {
    attempting: boolean;
    hash: string | null;
    compoundError: string | null;
    wrappedOnDismiss: () => void;
    onCompound: () => Promise<void>;
};
export declare function useDerivativeSarClaim(position: Position | null): {
    attempting: boolean;
    hash: string | null;
    claimError: string | null;
    wrappedOnDismiss: () => void;
    onClaim: () => Promise<void>;
};
/**
 * This hook return a list of id of an account
 * @returns Return an array with nfts id in hex string (0x1, 0x2, 0x3, ...)
 */
export declare function useSarNftsIds(): {
    nftsIndexes: string[][] | undefined;
    isLoading: boolean;
    isRefetching: boolean;
};
/**
 * This hook get the user positions from SAR Single Stake via contract calls
 * @returns Return if is loading and an array with alls positions of an user
 */
export declare function useSarPositionsViaContracts(): {
    positions: Position[];
    isLoading: boolean;
};
/**
 * This hook get the user positions from SAR Single Stake via subgraph
 * @returns Return if is loading and an array with alls positions of an user
 */
export declare function useSarPositionsViaSubgraph(): {
    positions: Position[];
    isLoading: boolean;
};
/**
 * its wrapper hook to check which hook need to use based on subgraph on off
 * @returns if is loading and an array with sar Postions
 */
export declare function useSarPositions(): {
    positions: Position[];
    isLoading: boolean;
};
