import { BigNumber, Contract } from 'ethers';
import { ReactNode } from 'react';
import { ApprovalContract, PermitApprovalInput } from './machine/approval-flow.machine';
import { ApprovalPermit } from './machine/utils';
export 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;
    onApprove?(): void;
    handleAction(amount: BigNumber, signedPermit?: ApprovalPermit | null): void | Promise<void>;
    /** Permit approval flow will be used when this is passed */
    permitApprovalInput?: PermitApprovalInput;
    isMultisig?: boolean;
    showStepNumber?: boolean;
};
/**
 * @todo replace with better hook like in delegate pane
 */
export declare function ApprovalFlow(props: ApprovalFlowProps): import("react").JSX.Element;
//# sourceMappingURL=ApprovalFlow.d.ts.map