import React from 'react';
import { FieldComponents, TutimProviderProps, TutimOptionsProviderValue } from '@tutim/types';
export declare const FieldComponentsContext: React.Context<FieldComponents>;
export declare const useFieldComponents: () => FieldComponents;
export declare const TutimOptionsContext: React.Context<TutimOptionsProviderValue>;
export declare const useTutimOptions: () => TutimOptionsProviderValue;
/**
 * a context provider to manage form infrastructure.
 *
 * @remarks
 * [API](https://docs.tutim.io/) • [Builder](https://tutim.io/)
 *
 * @param props - all tutim form configurations and components.
 *
 * @example
 * ```tsx
 * import { TutimProvider } from '@tutim/headless';
 * import { defaultFields } from '@tutim/fields';
 * import { FieldComponents } from '@tutim/types';
 * import { SimpleForm } from './SimpleForm';
 * import { CustomField } from './CustomField';
 *
 * const fieldComponents: FieldComponents = {
 *   ...defaultFields, // optional built in input fields based on MUI
 *   text: ({ inputProps }) => <input {...inputProps} />,
 *   'custom-field': (fieldProps) => <CustomField {...fieldProps} />,
 *   // add any type of input and reference it by 'type'
 * };
 *
 * export const App = (): JSX.Element => {
 *   return (
 *     <div className="App">
 *       <TutimProvider fieldComponents={fieldComponents}>
 *         <SimpleForm />
 *       </TutimProvider>
 *     </div>
 *   );
 * };
 * ```
 */
export declare const TutimProvider: ({ fieldComponents, options, children, }: TutimProviderProps) => JSX.Element;
