/// import { AddToCartInput, Price, Product, ProductVariant, ProductVariantOption } from '../types'; type Comments = Record; type Options = Record; export interface AddToCartSubmit { input: AddToCartInput; optimistic: { price?: Price; previousPrice?: Price; quantity: number; product: Product; variant?: ProductVariant; }; } interface AddToCartOptions { product?: Product; variant?: ProductVariant; commentValidators?: { [commentName: string]: ({ name, value }: { name?: string; value: string; }) => string; }; getMissingOptions?(): ProductVariantOption[] | null; submit: (data: AddToCartSubmit) => Promise; initialValues?: Record; } export interface AddToCartFormikValues { quantity: number; comments: Comments; options?: Options; [otherValues: string]: any; } export interface AddToCartFormikErrors { quantity?: string; comments?: Comments; options?: Options; [otherValues: string]: any; } export declare function useAddToCart({ product, variant, submit, commentValidators, getMissingOptions, initialValues }: AddToCartOptions): { form: { initialValues: AddToCartFormikValues; initialErrors: import("formik").FormikErrors; initialTouched: import("formik").FormikTouched; initialStatus: any; handleBlur: { (e: import("react").FocusEvent): void; (fieldOrEvent: T): T extends string ? (e: any) => void : void; }; handleChange: { (e: import("react").ChangeEvent): void; >(field: T_1): T_1 extends import("react").ChangeEvent ? void : (e: string | import("react").ChangeEvent) => void; }; handleReset: (e: any) => void; handleSubmit: (e?: import("react").FormEvent) => void; resetForm: (nextState?: Partial>) => void; setErrors: (errors: import("formik").FormikErrors) => void; setFormikState: (stateOrCb: import("formik").FormikState | ((state: import("formik").FormikState) => import("formik").FormikState)) => void; setFieldTouched: (field: string, touched?: boolean, shouldValidate?: boolean) => Promise | Promise>; setFieldValue: (field: string, value: any, shouldValidate?: boolean) => Promise | Promise>; setFieldError: (field: string, value: string) => void; setStatus: (status: any) => void; setSubmitting: (isSubmitting: boolean) => void; setTouched: (touched: import("formik").FormikTouched, shouldValidate?: boolean) => Promise | Promise>; setValues: (values: import("react").SetStateAction, shouldValidate?: boolean) => Promise | Promise>; submitForm: () => Promise; validateForm: (values?: AddToCartFormikValues) => Promise>; validateField: (name: string) => Promise | Promise; isValid: boolean; dirty: boolean; unregisterField: (name: string) => void; registerField: (name: string, { validate }: any) => void; getFieldProps: (nameOrOptions: string | import("formik").FieldConfig) => import("formik").FieldInputProps; getFieldMeta: (name: string) => import("formik").FieldMetaProps; getFieldHelpers: (name: string) => import("formik").FieldHelperProps; validateOnBlur: boolean; validateOnChange: boolean; validateOnMount: boolean; values: AddToCartFormikValues; errors: import("formik").FormikErrors; touched: import("formik").FormikTouched; isSubmitting: boolean; isValidating: boolean; status?: any; submitCount: number; }; }; export {};