import React from 'react';
import { FormProps as FormAntProps, FormItemProps, FormInstance } from 'antd';
import { FormListProps } from 'antd/lib/form';
import { NamePath } from 'antd/lib/form/interface';
import { FormConfigurationType, FormContextType, FormEntryResolvedType } from '../definitions';
import { useFilterValues } from '../hooks/Form/useFilterValues';
export type FieldsContextType = {
    context: FormContextType;
    fields: FormEntryResolvedType[];
    isList?: boolean;
    listPath?: NamePath;
};
export declare const FieldsContext: React.Context<FieldsContextType>;
export declare const FormDisabledContext: React.Context<boolean>;
export declare function FormItem({ name, widgetProps, ...props }: {
    widgetProps?: object;
} & FormItemProps): import("react/jsx-runtime").JSX.Element | null;
export declare function FormList({ name, children, ...props }: {
    children?: FormListProps['children'];
} & Omit<FormListProps, 'children'>): import("react/jsx-runtime").JSX.Element | null;
export declare function FormItems({ names, group }: {
    names?: NamePath[];
    group?: string;
}): import("react/jsx-runtime").JSX.Element;
export type FormProps = {
    debug?: boolean;
    config: FormConfigurationType;
    context: Omit<FormContextType, 'form'>;
    header?: React.ReactNode;
    footer?: React.ReactNode;
    children?: React.ReactNode | ((props: {
        fields: FormEntryResolvedType[];
        form: FormInstance;
        isSubmitting: boolean;
    }) => React.ReactNode);
    onValues?: (values: object, context: FormContextType) => Promise<object>;
    onSubmitState?: (isSubmitting: boolean) => void;
    formRef?: React.Ref<FormInstance>;
} & Omit<FormAntProps, 'children'>;
export type FormHandleType = {
    filterValues: typeof useFilterValues;
};
/**
 * Render a antd form wrapper with the list of fields.
 */
export declare const Form: React.ForwardRefExoticComponent<{
    debug?: boolean;
    config: FormConfigurationType;
    context: Omit<FormContextType, "form">;
    header?: React.ReactNode;
    footer?: React.ReactNode;
    children?: React.ReactNode | ((props: {
        fields: FormEntryResolvedType[];
        form: FormInstance;
        isSubmitting: boolean;
    }) => React.ReactNode);
    onValues?: (values: object, context: FormContextType) => Promise<object>;
    onSubmitState?: (isSubmitting: boolean) => void;
    formRef?: React.Ref<FormInstance>;
} & Omit<FormAntProps<any>, "children"> & React.RefAttributes<unknown>>;
export default Form;
//# sourceMappingURL=Form.d.ts.map