import { default as React } from 'react';
import { Amount, FundingAccount, RiskLevel } from '@zeniai/client-epic-state';
import { SweepFrequency } from './AutoSweepSetupPage';
interface TreasurySummaryWithBalance {
    availableBalance: Amount;
    fundAllocations: {
        amount: Amount;
        fundCode: string;
    }[];
    insuredFunds: Amount;
    processingBalance: Amount;
    totalBalance: Amount;
    totalYield: Amount;
}
export interface AutoSweepFlowProps {
    primaryAccount: FundingAccount;
    sweepAmount: Amount;
    initialFrequency?: SweepFrequency;
    initialMemo?: string;
    /** Initial state for the form. */
    initialRisk?: RiskLevel;
    /**
     * Pass `true` while the PUT save is in flight so the Review page renders
     * the Confirm button with a loading spinner and blocks edits. Driven off
     * the slice's `saveStatus.fetchState` in the container.
     */
    isSaving?: boolean;
    treasurySummary?: TreasurySummaryWithBalance;
    /**
     * Fired when the user clicks "Confirm Sweep" on the review screen.
     * Carries no payload — the form values have already been staged into
     * Redux via the preceding `onSaveDraft` dispatch on Review, so the
     * container can dispatch the save action with no payload.
     */
    onConfirm?: () => void;
    /** Fired when the user clicks the back arrow on the setup screen. */
    onExit?: () => void;
    /**
     * Fired whenever the risk band changes on the setup screen (live, not just
     * on review). Consumers wire this to update the buffer in Redux so the
     * recommended sweep amount recomputes and both screens stay in sync.
     */
    onRiskChange?: (risk: RiskLevel) => void;
    /**
     * Fired when the user transitions from setup → review (i.e. clicks the
     * "Review Sweep" button). Consumers wire this to persist the in-flight
     * form values into Redux so the draft is observable to other selectors
     * before the user confirms.
     */
    onSaveDraft?: (params: {
        frequency: SweepFrequency;
        memo: string;
        risk: RiskLevel;
    }) => void;
}
/**
 * Step state machine that pairs `AutoSweepSetupPage` and `AutoSweepReviewPage`.
 *
 * - Setup → Review: triggered by `onReviewClick` (Review Sweep button).
 * - Review → Setup: triggered by `onEditClick` (Edit button).
 * - Review → Confirm: triggered by `onConfirmClick`; bubbles up via `onConfirm`.
 *
 * Use this component in stories or screens that need the full
 * "configure → review → confirm" flow without their own routing layer.
 * In production a router-driven container can render the two pages on
 * separate routes instead of using this wrapper.
 */
declare const AutoSweepFlow: React.FC<AutoSweepFlowProps>;
export default AutoSweepFlow;
