import type { ActionDtoWithGasEstimate } from "@sk-widget/domain/types/action";
import type { AddressWithTokenDto, TokenDto, useTokenGetTokenBalancesHook } from "@stakekit/api-hooks";
import BigNumber from "bignumber.js";
import { EitherAsync } from "purify-ts";
export type CheckGasAmountIfStake = {
    isStake: true;
    stakeToken: TokenDto;
    stakeAmount: BigNumber;
} | {
    isStake: false;
};
export declare const checkGasAmount: ({ addressWithTokenDto, gasEstimate, tokenGetTokenBalances, ...rest }: {
    addressWithTokenDto: AddressWithTokenDto;
    gasEstimate: ActionDtoWithGasEstimate["gasEstimate"];
    tokenGetTokenBalances: ReturnType<typeof useTokenGetTokenBalancesHook>;
} & CheckGasAmountIfStake) => EitherAsync<never, NotEnoughGasTokenError | GasTokenMissingError | GetGasTokenError | null>;
export declare class NotEnoughGasTokenError extends Error {
    constructor();
}
export declare class GasTokenMissingError extends Error {
    constructor();
}
declare class GetGasTokenError extends Error {
    constructor();
}
export {};
