import React from 'react'; import { FormikProps } from 'formik'; import { Price, Product, ProductVariant, ProductVariantOption } from '../types'; import { DocumentNode } from 'graphql'; import { ApolloError } from '@apollo/client'; type Comments = Record; type Options = Record; interface AddToCartFormikValues { quantity: number; comments: Comments; options?: Options; [otherValues: string]: any; } interface AddToCartCallbackOptions { mutationId: string; quantity: number; product: Product; selectedVariation: ProductVariant; price: Price; } interface AddToCartFormikProps { product: Product; variant?: ProductVariant; commentValidators?: { [commentName: string]: ({ name, value }: { name?: string; value: string; }) => string; }; getMissingOptions?(): ProductVariantOption[] | null; initialValues?: Record; cartQuery?: DocumentNode; cartMutation?: DocumentNode; onAddToCartInit?: (opts: AddToCartCallbackOptions) => void; onAddToCartSuccess?: (opts: AddToCartCallbackOptions) => void; onAddToCartError?: (opts: AddToCartCallbackOptions & { error: Error | ApolloError; }) => void; children: (props: FormikProps) => React.ReactNode; } export declare function AddToCartFormik({ product, variant, commentValidators, getMissingOptions, initialValues, onAddToCartInit, onAddToCartError, onAddToCartSuccess, cartMutation, children }: AddToCartFormikProps): React.JSX.Element; export default AddToCartFormik;