import * as yup from 'yup';

type ValidationMap = {
  [key: string]: yup.AnySchema;
};
/**
 *
 * This is a container component for EmailForm that maintains the context values
 *
 * such as the Formik container. By using this context, EmailForm and its child
 *
 * components can easily access and manage form state, handle form submission, and
 *
 * perform form validation, among other operations.
 *
 * @example 
 *
 * import { EmailFormProvider } from "@bigbinary/neeto-molecules/EmailForm";
 * 
 * const EmailComposer = () => {
 *   return (
 *     <EmailFormProvider>
 *       {({ values }) => ({
 *          children 
 *       })}
 *     </EmailFormProvider>
 *   );
 * };
 * 
 * export default EmailComposer;
 * @endexample
*/
declare const EmailFormProvider: <T extends {}>(props: {
  showSendToField?: boolean;
  showReplyToField?: boolean;
  showSendToAsRadio?: boolean;
  onSubmit: FormikConfig<T>['onSubmit'];
  initialValues: T;
  children: ReactNode;
  formikProps: {
    [key: string]: any;
  };
  validationSchema?: ValidationMap;
  showCcField?: boolean;
  showBccField?: boolean;
}) => JSX.Element;

export { EmailFormProvider as default };
