import type { Account, AccountLike } from "@ledgerhq/types-live";
import { type FlowStatus } from "../../wizard/types";
import { getSendUiConfig } from "../uiConfig";
import type { SendFlowState, SendFlowInitParams, RecipientData, SendFlowOperationActions, SendFlowOperationResult, SendFlowTransactionActions, SendFlowTransactionState } from "../types";
type UseSendFlowBusinessLogicParams = Readonly<{
    initParams?: SendFlowInitParams;
    useOperationHook: (params: {
        account: AccountLike | null;
        parentAccount: Account | null;
    }) => Readonly<{
        state: SendFlowOperationResult;
        actions: SendFlowOperationActions;
    }>;
    useTransactionHook: (params: {
        account: AccountLike | null;
        parentAccount: Account | null;
    }) => Readonly<{
        state: SendFlowTransactionState;
        actions: SendFlowTransactionActions;
    }>;
}>;
type UseSendFlowBusinessLogicResult = Readonly<{
    state: SendFlowState;
    transaction: ReturnType<UseSendFlowBusinessLogicParams["useTransactionHook"]>["actions"] & {
        setRecipient: (recipient: RecipientData) => void;
    };
    operation: SendFlowOperationActions;
    status: Readonly<{
        setStatus: (status: FlowStatus) => void;
        setError: () => void;
        setSuccess: () => void;
        resetStatus: () => void;
    }>;
    uiConfig: ReturnType<typeof getSendUiConfig>;
    recipientSearch: Readonly<{
        value: string;
        setValue: (value: string) => void;
        clear: () => void;
    }>;
    recipient: RecipientData | null;
    setAccountAndNavigate: (account: AccountLike, parentAccount?: Account) => void;
}>;
/**
 * Core Send flow business logic - platform agnostic
 * Manages account, transaction, recipient, operation, and status state
 * Apps inject platform-specific operation hooks (e.g. Redux)
 */
export declare function useSendFlowBusinessLogic({ initParams, useOperationHook, useTransactionHook, }: UseSendFlowBusinessLogicParams): UseSendFlowBusinessLogicResult;
export {};
//# sourceMappingURL=useSendFlowBusinessLogic.d.ts.map