import type { TranslateFn } from "../../i18n";
import type { ChestProfile, MidsectionProfile, HipProfile } from "../types";
interface BodyProfileViewProps {
    productImage: string;
    productTitle: string;
    isWomen: boolean;
    basicOnly?: boolean;
    /** Optional entry step for recovery flows, such as falling back from an error to manual measurements. */
    initialStep?: "photo" | "basics";
    /** Use the default upload screen with only height/weight questions. */
    simplePhotoOnly?: boolean;
    /** Compact desktop treatment for accessory flows that only need height/weight. */
    simpleAccessoryLayout?: boolean;
    simpleQuestionMode?: "heightWeight" | "shoeReference";
    formRef: React.MutableRefObject<Record<string, string>>;
    sizingCountry: string;
    heightUnit: string;
    setHeightUnit: (u: string) => void;
    weightUnit: string;
    setWeightUnit: (u: string) => void;
    sizingUnit?: string;
    setSizingUnit?: (u: string) => void;
    /** Backend URL + API key — required for the pre-upload age check call. */
    apiUrl?: string;
    apiKey?: string;
    onComplete: (data: {
        height: number;
        weight: number;
        heightUnit: string;
        weightUnit: string;
        gender: string;
        age?: number;
        chestProfile?: ChestProfile;
        midsectionProfile?: MidsectionProfile;
        hipProfile?: HipProfile;
        bodyImage?: string;
        bandSize?: string;
        cupSize?: string;
        braSizeRegion?: string;
    }) => void;
    onSnapSubmit: (data: {
        photoFile: File;
        photoBase64: string;
        height: number;
        weight: number;
        heightUnit: string;
        weightUnit: string;
        gender: string;
        age?: number;
        bandSize?: string;
        cupSize?: string;
        braSizeRegion?: string;
        braSize?: {
            band: number;
            cup: string;
            region: string;
        };
        chestProfile?: ChestProfile;
        midsectionProfile?: MidsectionProfile;
        hipProfile?: HipProfile;
        extraMeasurements?: Record<string, string | number>;
    }) => void;
    /** True if the user has an active profile with stored measurements —
     *  changes the basics step Next button to "Find My Best Fit" */
    hasActiveProfileWithMeasurements?: boolean;
    /** Fast-path callback: skip the rest of the wizard and run /sizing/recommend
     *  with the active profile's stored measurements directly. */
    onUseActiveProfile?: () => void;
    /** Display name of the currently active profile (for the "Profile X loaded"
     *  banner shown on the basics step). */
    activeProfileName?: string | null;
    /** Deselect the active profile so the user can run a fresh AI sizing flow
     *  with full body-shape questions. */
    onStartFresh?: () => void;
    /** Active profile — when set, its height/weight/age/gender seed the basics
     *  inputs so the SDK opens with the user's saved values, not the defaults. */
    activeProfile?: import("../types").Profile | null;
    onBack: () => void;
    t: TranslateFn;
}
export declare function BodyProfileView({ productImage, productTitle, isWomen, basicOnly, initialStep, simplePhotoOnly, simpleAccessoryLayout, simpleQuestionMode, formRef, sizingCountry, heightUnit, setHeightUnit, weightUnit, setWeightUnit, sizingUnit, setSizingUnit, apiUrl, apiKey, onComplete, onSnapSubmit, hasActiveProfileWithMeasurements, onUseActiveProfile, activeProfileName, onStartFresh, activeProfile, onBack, t, }: BodyProfileViewProps): import("react/jsx-runtime").JSX.Element;
export {};
