import type { TranslateFn } from "../../i18n";
import type { ViewState, SizeGuide, SizingResult } from "../types";
import type { BodyLandmarks } from "../../pose-detect";
import { type ProductPhotoCarouselItem } from "./ProductPhotoCarouselCard";
export declare function SizeResultView({ sizingLoading, sizingResult, sizeGuide, resultImageUrl, productImage, productImages, productCarouselItems, productTitle, productUrl, productMaterial, productDescription, sizingUnit, setView, handleDownload, onContinueShopping, isHistoryResult, onBackToProductPage, onAddToBag, addToBagLabel, continueShoppingLabel, backToProductPageLabel, onTryOnFeedbackSubmit, selectedFile, previewUrl, handleFileSelect, handleRemovePreview, handleTryOnSubmit, tryOnProcessing, tryOnStartedAt, bodyLandmarks, faceLandmarks, measurementType, 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[];
    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;
    setView: (v: ViewState) => void;
    handleDownload: () => void;
    onContinueShopping?: () => void;
    isHistoryResult?: boolean;
    onBackToProductPage?: () => void;
    onAddToBag?: () => void | Promise<void>;
    addToBagLabel?: string;
    continueShoppingLabel?: string;
    backToProductPageLabel?: string;
    onTryOnFeedbackSubmit?: (input: {
        rating?: number;
        note?: string;
    }) => Promise<void>;
    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;
    bodyLandmarks?: BodyLandmarks | null;
    faceLandmarks?: import("../../face-detect").FaceLandmarks | null;
    measurementType?: "body" | "face" | "head" | "foot" | "wrist";
    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<string, {
        sectionName: string;
        selectedSize: string;
        selectedLength?: string;
        displayLabel: string;
        matchDetails?: Array<{
            measurement: string;
            userValue: string;
            chartRange: string;
            fit: string;
        }>;
    }>;
    /** 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;
