import * as React from 'react'; import { Swatch } from '../../contexts/ov25-ui-context.js'; export interface Variant { id: string; groupId?: string; optionId?: string; name: string; /** From selection metadata (e.g. bed line size); rendered under `name`, not concatenated into title. */ bedSize?: string; sku?: string; price: number; image: string; blurHash: string; data?: any; isSelected?: boolean; swatch?: Swatch; } export type DrawerSizes = 'closed' | 'small' | 'large'; export interface VariantGroup { groupName: string; variants: Variant[]; } export interface VariantCardProps { variant: Variant; onSelect: (variant: Variant) => void; index: number; isMobile: boolean; isGrouped?: boolean; compactSpacing?: boolean; } interface ProductVariantsProps { isOpen: boolean; onClose: () => void; variants: Variant[] | VariantGroup[]; onSelect: (variant: Variant) => void; VariantCard?: React.ComponentType; onAccordionChange?: () => void; gridDivide?: number; drawerSize?: DrawerSizes; onNext?: () => void; onPrevious?: () => void; basis?: string; isMobile: boolean; } export declare const ProductVariants: ({ variants, onSelect, drawerSize, gridDivide, VariantCard, basis, isMobile, }: ProductVariantsProps) => React.JSX.Element; export {};