/// import * as PropTypes from 'prop-types'; import * as React from 'react'; export interface FormikValues { [field: string]: any; } export declare type FormikErrors = { [field in keyof Values]?: any; }; export declare type FormikTouched = { [field in keyof Values]?: boolean & FormikTouched; }; export interface FormikState { values: Values; error?: any; errors: FormikErrors; touched: FormikTouched; isSubmitting: boolean; status?: any; } export interface FormikComputedProps { readonly dirty: boolean; readonly isValid: boolean; readonly initialValues: Values; } export interface FormikActions { setStatus(status?: any): void; setError(e: any): void; setErrors(errors: FormikErrors): void; setSubmitting(isSubmitting: boolean): void; setTouched(touched: FormikTouched): void; setValues(values: Values): void; setFieldValue(field: keyof Values, value: any, shouldValidate?: boolean): void; setFieldValue(field: string, value: any, shouldValidate?: boolean): void; setFieldError(field: keyof Values, message: string): void; setFieldError(field: string, message: string): void; setFieldTouched(field: keyof Values, isTouched?: boolean, shouldValidate?: boolean): void; setFieldTouched(field: string, isTouched?: boolean, shouldValidate?: boolean): void; validateForm(values?: any): void; resetForm(nextValues?: any): void; submitForm(): void; setFormikState>(f: (prevState: Readonly>, props: any) => Pick, K>, callback?: () => any): void; } export interface FormikActions { setFieldValue(field: string, value: any): void; setFieldError(field: string, message: string): void; setFieldTouched(field: string, isTouched?: boolean): void; setFormikState>(state: Pick, K>, callback?: () => any): void; } export interface FormikHandlers { handleSubmit: (e: React.FormEvent) => void; handleChange: (e: React.ChangeEvent) => void; handleBlur: (e: any) => void; handleReset: () => void; } export interface FormikSharedConfig { validateOnChange?: boolean; validateOnBlur?: boolean; isInitialValid?: boolean | ((props: object) => boolean | undefined); enableReinitialize?: boolean; } export interface FormikConfig extends FormikSharedConfig { initialValues: Values; onReset?: (values: Values, formikActions: FormikActions) => void; onSubmit: (values: Values, formikActions: FormikActions) => void; component?: React.ComponentType> | React.ReactNode; render?: ((props: FormikProps) => React.ReactNode); validationSchema?: any | (() => any); validate?: ((values: Values) => void | object | Promise>); children?: ((props: FormikProps) => React.ReactNode) | React.ReactNode; } export declare type FormikProps = FormikState & FormikActions & FormikHandlers & FormikComputedProps; export declare class Formik extends React.Component & ExtraProps, FormikState> { static defaultProps: { validateOnChange: boolean; validateOnBlur: boolean; isInitialValid: boolean; enableReinitialize: boolean; }; static propTypes: { validateOnChange: PropTypes.Requireable; validateOnBlur: PropTypes.Requireable; isInitialValid: PropTypes.Requireable; initialValues: PropTypes.Requireable; onReset: PropTypes.Requireable; onSubmit: PropTypes.Validator; validationSchema: PropTypes.Requireable; validate: PropTypes.Requireable; component: PropTypes.Requireable; render: PropTypes.Requireable; children: PropTypes.Requireable; enableReinitialize: PropTypes.Requireable; }; static childContextTypes: { formik: PropTypes.Requireable; }; initialValues: Values; getChildContext(): { formik: { handleBlur: (e: any) => void; handleChange: (e: React.ChangeEvent) => void; handleReset: () => void; handleSubmit: (e: React.FormEvent) => void; validateOnChange: (FormikConfig & ExtraProps)["validateOnChange"]; validateOnBlur: (FormikConfig & ExtraProps)["validateOnBlur"]; dirty: boolean; isValid: boolean; initialValues: Values; setStatus(status?: any): void; setError(e: any): void; setErrors(errors: FormikErrors): void; setSubmitting(isSubmitting: boolean): void; setTouched(touched: FormikTouched): void; setValues(values: Values): void; setFieldValue(field: keyof Values, value: any, shouldValidate?: boolean | undefined): void; setFieldValue(field: string, value: any, shouldValidate?: boolean | undefined): void; setFieldValue(field: string, value: any): void; setFieldError(field: keyof Values, message: string): void; setFieldError(field: string, message: string): void; setFieldError(field: string, message: string): void; setFieldTouched(field: keyof Values, isTouched?: boolean | undefined, shouldValidate?: boolean | undefined): void; setFieldTouched(field: string, isTouched?: boolean | undefined, shouldValidate?: boolean | undefined): void; setFieldTouched(field: string, isTouched?: boolean | undefined): void; validateForm(values?: any): void; resetForm(nextValues?: any): void; submitForm(): void; setFormikState(f: (prevState: Readonly>, props: any) => Pick, K>, callback?: (() => any) | undefined): void; setFormikState(state: Pick, K>, callback?: (() => any) | undefined): void; values: any; error?: any; errors: FormikErrors; touched: FormikTouched; isSubmitting: boolean; status?: any; }; }; constructor(props: FormikConfig & ExtraProps); componentWillReceiveProps(nextProps: Readonly & ExtraProps>): void; componentWillMount(): void; setErrors: (errors: FormikErrors) => void; setTouched: (touched: FormikTouched) => void; setValues: (values: FormikValues) => void; setStatus: (status?: any) => void; setError: (error: any) => void; setSubmitting: (isSubmitting: boolean) => void; runValidationSchema: (values: FormikValues, onSuccess?: Function | undefined) => void; runValidations: (values?: FormikValues) => void; handleChange: (e: React.ChangeEvent) => void; setFieldValue: (field: string, value: any, shouldValidate?: boolean) => void; handleSubmit: (e: React.FormEvent) => void; submitForm: () => void; executeSubmit: () => void; handleBlur: (e: any) => void; setFieldTouched: (field: string, touched?: boolean, shouldValidate?: boolean) => void; setFieldError: (field: string, message: string) => void; resetForm: (nextValues?: Values | undefined) => void; handleReset: () => void; setFormikState: (s: any, callback?: (() => void) | undefined) => void; getFormikActions: () => FormikActions; getFormikComputedProps: () => { dirty: boolean; isValid: boolean; initialValues: Values; }; getFormikBag: () => { handleBlur: (e: any) => void; handleChange: (e: React.ChangeEvent) => void; handleReset: () => void; handleSubmit: (e: React.FormEvent) => void; validateOnChange: (FormikConfig & ExtraProps)["validateOnChange"]; validateOnBlur: (FormikConfig & ExtraProps)["validateOnBlur"]; dirty: boolean; isValid: boolean; initialValues: Values; setStatus(status?: any): void; setError(e: any): void; setErrors(errors: FormikErrors): void; setSubmitting(isSubmitting: boolean): void; setTouched(touched: FormikTouched): void; setValues(values: Values): void; setFieldValue(field: keyof Values, value: any, shouldValidate?: boolean | undefined): void; setFieldValue(field: string, value: any, shouldValidate?: boolean | undefined): void; setFieldValue(field: string, value: any): void; setFieldError(field: keyof Values, message: string): void; setFieldError(field: string, message: string): void; setFieldError(field: string, message: string): void; setFieldTouched(field: keyof Values, isTouched?: boolean | undefined, shouldValidate?: boolean | undefined): void; setFieldTouched(field: string, isTouched?: boolean | undefined, shouldValidate?: boolean | undefined): void; setFieldTouched(field: string, isTouched?: boolean | undefined): void; validateForm(values?: any): void; resetForm(nextValues?: any): void; submitForm(): void; setFormikState(f: (prevState: Readonly>, props: any) => Pick, K>, callback?: (() => any) | undefined): void; setFormikState(state: Pick, K>, callback?: (() => any) | undefined): void; values: any; error?: any; errors: FormikErrors; touched: FormikTouched; isSubmitting: boolean; status?: any; }; render(): any; } export declare function yupToFormErrors(yupError: any): FormikErrors; export declare function validateYupSchema(data: T, schema: any, context?: any): Promise; export * from './Field'; export * from './Form'; export * from './withFormik'; export * from './FieldArray'; export * from './utils';