import type { TranslateFn } from "../../i18n"; import type { ViewState, SizeGuide, SizingResult } from "../types"; import type { StyleMatchSelection } from "../../api-client"; import type { BodyLandmarks } from "../../pose-detect"; import { type ProductPhotoCarouselItem } from "./ProductPhotoCarouselCard"; export declare function SizeResultView({ sizingLoading, sizingResult, sizeGuide, resultImageUrl, productImage, productImages, productCarouselItems, productTitle, styleMatchSelections, productUrl, productMaterial, productDescription, sizingUnit, setSizingUnit, setView, handleDownload, onContinueShopping, isHistoryResult, onBackToProductPage, onAddToBag, addToBagLabel, continueShoppingLabel, backToProductPageLabel, onTryOnFeedbackSubmit, selectedFile, previewUrl, handleFileSelect, handleRemovePreview, handleTryOnSubmit, tryOnProcessing, tryOnStartedAt, tryOnErrorMessage, bodyLandmarks, faceLandmarks, measurementType, isAccessoryProduct, estimationDone, activeSection, setActiveSection, onResetTryOn, onClose, userHeightCm, pendingCustomSizes: pendingCustomSizesProp, onPendingCustomSizeChange, tryOnAvailable, showProfileCompletionCta, onProfileCompletionCta, portalContainer, t, }: { estimationDone?: boolean; sizingLoading: boolean; sizingResult: SizingResult | null; sizeGuide: SizeGuide | null; resultImageUrl: string | null; productImage: string; /** Optional gallery of photos for the active color/variant — drives the * auto-cycling carousel card on the single-garment desktop layout while * try-on is processing. */ productImages?: string[]; /** Preferred carousel items, typically complete-the-look products. */ productCarouselItems?: ProductPhotoCarouselItem[]; /** Selected RAG outfit items used for the multi-garment try-on. */ styleMatchSelections?: StyleMatchSelection[]; productTitle: string; productUrl?: string; /** Garment material/fabric — feeds the "Garment Spotlight" card on * the engaging try-on processing UI. */ productMaterial?: string; /** Garment description — fallback for "Garment Spotlight" when material * is empty. */ productDescription?: string; sizingUnit: string; setSizingUnit: (unit: string) => void; setView: (v: ViewState) => void; handleDownload: () => void; onContinueShopping?: () => void; isHistoryResult?: boolean; onBackToProductPage?: () => void; onAddToBag?: () => void | Promise; addToBagLabel?: string; continueShoppingLabel?: string; backToProductPageLabel?: string; onTryOnFeedbackSubmit?: (input: { rating?: number; note?: string; }) => Promise; selectedFile: File | null; previewUrl: string | null; handleFileSelect: (file: File) => void; handleRemovePreview: () => void; handleTryOnSubmit: (overrideFile?: File) => void; tryOnProcessing?: boolean; /** Wall-clock ms when Try It On started — drives elapsed counter. */ tryOnStartedAt?: number | null; /** Try-on failure shown while keeping the successful size result visible. */ tryOnErrorMessage?: string | null; bodyLandmarks?: BodyLandmarks | null; faceLandmarks?: import("../../face-detect").FaceLandmarks | null; measurementType?: "body" | "face" | "head" | "foot" | "wrist"; isAccessoryProduct?: boolean; activeSection: string | null; setActiveSection: (s: string | null) => void; /** Clear try-on result + uploaded photo so the user can retry from the photo guide. */ onResetTryOn?: () => void; /** Close the SDK modal entirely (Continue Shopping action). */ onClose?: () => void; /** Active profile's height in cm — used to populate the height row in the fit table. */ userHeightCm?: number; /** Parent-owned per-section override map. Keyed by section name * ("Jacket", "Pants", "Vest"). Empty = all sections on the backend's * recommendation. Each section can hold its own {size, length, * matchDetails, displayLabel} independently. */ pendingCustomSizes?: Record; }>; /** Setter. Passing `null` clears that section's override. */ onPendingCustomSizeChange?: (sectionName: string, override: null | { sectionName: string; selectedSize: string; selectedLength?: string; displayLabel: string; matchDetails?: Array<{ measurement: string; userValue: string; chartRange: string; fit: string; }>; }) => void; /** When false, the size-result view drops every Try-On affordance and * shows "Continue Shopping" instead. Set to false when sizing came in * via the manual measurements path (no photo collected upstream). */ tryOnAvailable?: boolean; showProfileCompletionCta?: boolean; onProfileCompletionCta?: () => void; portalContainer?: Element | DocumentFragment; t: TranslateFn; }): import("react/jsx-runtime").JSX.Element;