import { Checkout, WrappedBrowserProvider, GetBalanceResult } from '@imtbl/checkout-sdk';
import { TransactionReceipt } from 'ethers';
export type TransferFormState = {
    type: 'FORM';
    allowedBalances: GetBalanceResult[];
    checkout: Checkout;
    provider: WrappedBrowserProvider;
    amount: string;
    amountError: string;
    tokenAddress: string;
    toAddress: string;
    toAddressError: string;
};
export type TransferCompleteState = {
    type: 'COMPLETE';
    receipt: TransactionReceipt;
    chainId: number;
    checkout: Checkout;
    provider: WrappedBrowserProvider;
    allowedBalances: GetBalanceResult[];
};
export type TransferState = {
    type: 'INITIALISING';
} | TransferFormState | {
    type: 'AWAITING_APPROVAL';
    checkout: Checkout;
    provider: WrappedBrowserProvider;
    allowedBalances: GetBalanceResult[];
} | {
    type: 'TRANSFERRING';
    checkout: Checkout;
    provider: WrappedBrowserProvider;
    allowedBalances: GetBalanceResult[];
} | TransferCompleteState;
export declare const useTransferContext: () => TransferState;
