import type { TranslateFn } from "../../i18n"; import type { Profile, ViewState } from "../types"; export interface AccessoryField { key: string; label: string; placeholder: { cm: string; in: string; }; hint?: string; min?: number; max?: number; step?: number; /** If provided, this image replaces the product image when the field is focused */ guideImage?: string; } interface Props { title: string; fields: AccessoryField[]; /** Unit options: first = metric-ish (cm/mm), second = imperial (in) */ unitOptions?: [{ label: string; value: string; }, { label: string; value: string; }]; /** "close-up" swaps the photo step copy to face/head photo guidance */ photoVariant?: "full-body" | "close-up"; /** When true, hides the photo upload CTA entirely — manual entry only */ disablePhotoUpload?: boolean; productImage: string; productTitle: string; formRef: React.MutableRefObject>; activeProfile?: Profile | null; sizingUnit: string; setSizingUnit: (u: string) => void; setSizingMethod: (m: "exact" | "quick" | null) => void; setSizingLoading: (v: boolean) => void; setView: (v: ViewState) => void; submitSizing: (mode: "exact" | "quick") => void; onSnapSubmit: (data: { photoFile: File | null; photoBase64: string; height: number; weight: number; heightUnit: string; weightUnit: string; gender: string; age?: number; extraMeasurements?: Record; }) => void; onBack: () => void; /** Backend URL + API key — required for the pre-upload age check. * Without these the age-check is skipped (fail-open). */ apiUrl?: string; apiKey?: string; onStartFresh?: () => void; t: TranslateFn; } export declare function AccessorySizeView({ title, fields, unitOptions, photoVariant, disablePhotoUpload, productImage, productTitle, formRef, activeProfile, sizingUnit, setSizingUnit, setSizingMethod, setSizingLoading, setView, submitSizing, onSnapSubmit, onBack, apiUrl, apiKey, onStartFresh, t, }: Props): import("react/jsx-runtime").JSX.Element; export {};