import { Product, ProductVariant, ProductVariantOption } from '../../types'; declare 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 }?: { initialVariant?: ProductVariantOption; }): { 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[]; }; export {};