/// <reference types="react" />
import { TipserProductModel, TipserProductVariantModel } from '../product/model';
import { ProductAvailability } from '../product/product-availability-utils';
import { DeepPartial } from '../../common/utils/types';
import { From } from '../../common/analytics/from';
export interface ProductContextData {
    product: TipserProductModel;
    onProductClicked: (productId: string, from?: From) => void;
    selectedVariant: TipserProductVariantModel;
    onVariantChange: (selectedVariantId: string) => void;
    productAvailability: ProductAvailability;
    activeProductImageIndex: {
        previousIndex: number;
        currentIndex: number;
    };
    setActiveProductImageIndex: (prevIndex: number, currentIndex: number) => void;
    isVariantSelectorHighlighted: boolean;
    setVariantSelectorHighlighted: (highlighted: boolean) => void;
    dropdown: {
        productDropdownId: string;
        ref: React.MutableRefObject<HTMLLabelElement>;
    };
    notifyMe: {
        email: string;
        isSubmitted: boolean;
        setIsSubmitted: (isSubmitted: boolean) => void;
        setEmail: (email: string) => void;
    };
}
export declare type ModularProductContextDataProps = {
    overrideProductContext?: DeepPartial<ProductContextData>;
};
//# sourceMappingURL=types.d.ts.map