import type { SetupStepName } from '@/lib/setup-state';

// Shared prop shape for every wizard step. The parent (setup-wizard.tsx)
// dispatches to the right component based on activeStep; each component
// handles its own data loading, form state, and save action, then calls
// onComplete + onAdvance when the user clicks "Mark complete".
export type WizardStepComponentProps = {
    isCompleted: boolean;
    isLast: boolean;
    onPrev: (() => void) | null;
    onNext: (() => void) | null;
    // Called by each step after a successful save. Parent handles both the
    // markSetupStepComplete API call AND the local state update so the left
    // nav reflects the new completion immediately.
    onComplete: (step: SetupStepName) => Promise<void>;
    // Move to the next step (used after a successful save, or directly via
    // the Next button when the step is already complete).
    onAdvance: () => void;
    onFinish: () => void;
};
