import { Product, ProductVariant, ProductVariantOption } from '../../types'; export type VariantValidation = 'outOfStock' | 'valid' | 'incomplete' | 'invalid'; /** * Given a product, this hook provides methods for getting and setting variants on that product, * as well as methods to validate the current and proposed combination of values. */ export declare function useProductVariants(product: Product, { initialVariant, preselectCheapest }?: { initialVariant?: ProductVariantOption; preselectCheapest?: boolean; }): { selectedVariant: ProductVariant; validation: VariantValidation; getSelectedValue: (option: ProductVariantOption) => string; selectValue: (value: string, option: ProductVariantOption) => void; validateSelection: (value: string, option: ProductVariantOption) => VariantValidation; getVariantForSelection: (value: string, option: ProductVariantOption) => ProductVariant; missingOptions: ProductVariantOption[]; getMissingOptions: () => ProductVariantOption[]; };