import type { WithdrawalFlowCallbacks, WithdrawalFlowConfig } from '../flow/withdrawalFlowConfig'; import { type DepositAddressOrHash } from './useCryptoWithdrawalExecution'; import type { CryptoWithdrawalForm } from './useCryptoWithdrawalForm'; /** * Signing the withdrawal {@link CryptoWithdrawalForm} describes: the press, the * once-only hand-off to the outcome, and what the step shows while either is in * flight. * * Held apart from the step that renders it so the money path's invariants — one * hand-off, the source the signature was actually raised against, nothing * executed but the quote on screen — can be exercised without a rendered screen. */ /** What the recipient step is showing the withdrawal will land as. */ interface ReceiveLabels { usdLabel: string | undefined; tokenLabel: string | undefined; } export declare function useCryptoWithdrawalSubmit({ config, callbacks, form, receiveLabels, onSubmitted, }: { config: WithdrawalFlowConfig; callbacks: WithdrawalFlowCallbacks; /** The withdrawal being built, which is what gets signed. */ form: CryptoWithdrawalForm; receiveLabels: ReceiveLabels; onSubmitted: (result: { depositAddressOrHash: DepositAddressOrHash; amountLabel: string; } & ReceiveLabels) => void; }): { isSubmitting: boolean; /** The button holds for the price and the screening too, not only the signature. */ isBusy: boolean; /** An unrecoverable failure from the last attempt, in the user's words. */ executionErrorText: string | undefined; /** Executes the quote on screen. `form.canSubmit` is what gates the press. */ submit: () => void; }; export {}; //# sourceMappingURL=useCryptoWithdrawalSubmit.d.ts.map