import React from "react";
import { FormikValues, FormikTouched, FormikErrors } from "formik";
import FieldInterface from "../../../components/Form/definitions/FieldInterface";
import FieldsInterface from "../../../components/Form/definitions/FieldsInterface";
interface CollectionSpecificProps {
    fields: FieldsInterface;
    disableAddRow?: ((value: FormikValues, values: FormikValues, path: string, touched: FormikTouched<FormikValues>, errors: FormikErrors<FormikValues>, name: string) => boolean) | boolean;
    disableDeleteRow?: ((value: FormikValues, values: FormikValues, path: string, touched: FormikTouched<FormikValues>, errors: FormikErrors<FormikValues>, name: string) => boolean) | boolean;
    onAddRow?: (setFieldValue: (field: string, value: any, shouldValidate?: boolean) => void, values: FormikValues, path: string, defaultAddRow: () => void, name: string, touched: FormikTouched<FormikValues>, errors: FormikErrors<FormikValues>, nextElementKey: number) => void;
    onDeleteRow?: (key: number, setFieldValue: (field: string, value: any, shouldValidate?: boolean) => void, values: FormikValues, path: string, defaultDeleteRow: () => void, name: string, touched: FormikTouched<FormikValues>, errors: FormikErrors<FormikValues>, initialMaxElementKey: number) => void;
    initialValues?: ((values: FormikValues, path: string, name: string, touched: FormikTouched<FormikValues>, errors: FormikErrors<FormikValues>) => FormikValues) | FormikValues;
}
type CollectionProps = CollectionSpecificProps & FieldInterface;
declare const Collection: ({ fields, disableAddRow: disableAddRowProp, disableDeleteRow: disableDeleteRowProp, onAddRow, onDeleteRow, initialValues, validate: fieldValidate, ...field }: CollectionProps) => React.JSX.Element | null;
export default Collection;
export { CollectionProps, CollectionSpecificProps };
