import { BigNumber, Contract } from 'ethers';
import { ReactNode } from 'react';
import { ApprovalContract, PermitApprovalInput } from './machine/approval-flow.machine';
import { ApprovalPermit } from './machine/utils';
export declare type ApprovalFlowProps = {
    ethereumAccount: string | null;
    approvalContract: ApprovalContract;
    contractAddress: string | null;
    vestingContract?: Contract;
    vestingContractAddress?: string;
    /**
     * the number of block confirmations to achieve before calling the approval transaction complete.
     * @see https://docs.ethers.io/v5/api/providers/types/#providers-TransactionResponse
     */
    approvalConfirmations?: number;
    requestedAmount: BigNumber;
    disabled?: boolean;
    allowStepLabel: ReactNode;
    allowStepActionText: ReactNode;
    allowStepActionIcon?: ReactNode;
    allowStepTooltip?: {
        title?: ReactNode;
        text: ReactNode;
    };
    actionStepLabel: ReactNode;
    actionStepActionText: ReactNode;
    actionStepActionIcon?: ReactNode;
    actionStepStatus?: 'loading' | 'success' | 'success-final' | 'error' | 'loading-progress';
    actionStepLoadingProgress?: number;
    handleAction: (amount: BigNumber, signedPermit?: ApprovalPermit) => void | Promise<void>;
    /** Permit approval flow will be used when this is passed */
    permitApprovalInput?: PermitApprovalInput;
    isMultisig?: boolean;
};
export declare const ApprovalFlow: ({ ethereumAccount, approvalContract, contractAddress, vestingContract, vestingContractAddress, approvalConfirmations, requestedAmount, disabled, allowStepLabel, allowStepActionText, allowStepActionIcon, allowStepTooltip, actionStepLabel, actionStepActionText, actionStepActionIcon, actionStepStatus, actionStepLoadingProgress, handleAction, permitApprovalInput, isMultisig, }: ApprovalFlowProps) => import("theme-ui/jsx-runtime").JSX.Element;
