import type { TranslateFn } from "../../i18n";
import type { Profile, ProfileCompletionDraft } from "../types";
/**
 * Multi-step profile creation wizard.
 *
 * NEW FLOW (Apr 2026):
 *
 *   1. Method picker — user chooses between:
 *        a) "Measure manually"  — enter height, weight, and answer body
 *           shape questions one at a time with fade transitions.
 *        b) "Analyze by photo"  — pick a profile name, upload a full-body
 *           photo, and let the SDK estimate every measurement (waist, hip,
 *           sleeve, inseam, chest, etc.) via vision.
 *
 *   2a. MANUAL PATH
 *        Step "identity"      — name + gender + units + height + weight + age
 *        Step "chest" (men)   — single ShapeCard row, fade transition
 *        Step "stomach"       — single ShapeCard row, fade transition
 *        Step "seat"          — single ShapeCard row, fade transition
 *        Step "hips" (women)  — single ShapeCard row, fade transition
 *        Step "bra" (women)   — band + cup pickers
 *        → Save → parent persists + runs estimateFullMeasurements
 *
 *   2b. IMAGE PATH
 *        Step "name"   — profile name + gender (no measurements needed)
 *        Step "photo"  — full-screen photo upload (same UI as the SDK's
 *                         "Find size by photo" mode)
 *        → Save with photoBase64 → parent's onSaveNewProfile already calls
 *           estimateFullMeasurements({bodyImage}) which kicks off the
 *           vision pipeline and stores all body measurements on the profile.
 *
 * Body shape questions are rendered inside `ProgressiveStep`, which keys
 * the children on the active step name so changing step triggers a CSS
 * fade-in animation.
 */
interface CreateProfileWizardProps {
    onSave: (data: Omit<Profile, "id" | "createdAt">) => void;
    onCancel: () => void;
    initialMode?: "manual" | "image";
    initialDraft?: ProfileCompletionDraft | null;
    /** Direct profile-save path launched from a size result. Keeps the shell back button and skips wizard chrome. */
    directAnalysisFlow?: boolean;
    /** Backend URL + API key — required for the pre-upload age check call. */
    apiUrl?: string;
    apiKey?: string;
    /** Called when a photo is selected (passes base64) or removed (passes null).
     *  Host can use this to mirror the photo in the product-image left panel. */
    onPhotoPreview?: (base64: string | null) => void;
    /** Called during image path to estimate body measurements from photo + height/weight.
     *  Returns estimates that get saved to the profile. Wizard shows a calculating
     *  animation while this runs. */
    onEstimate?: (data: {
        photoBase64: string;
        height: number;
        weight: number;
        heightUnit: "cm" | "in";
        weightUnit: "kg" | "lbs";
        gender: "male" | "female";
        age?: number;
    }) => Promise<{
        estimates: Record<string, number>;
        unit: string;
    } | null>;
    t: TranslateFn;
}
export declare function CreateProfileWizard({ onSave, onCancel, initialMode, initialDraft, directAnalysisFlow, apiUrl, apiKey, onPhotoPreview, onEstimate, t }: CreateProfileWizardProps): import("react/jsx-runtime").JSX.Element;
export {};
