import { Form as AntdForm, FormInstance as AntdFormInstance, FormItemProps as AntdFormItemProps, FormProps as AntdFormProps } from 'antd';
import type { LabelTooltipType } from 'antd/es/form/FormItemLabel';
import { ErrorListProps } from 'antd/lib/form';
import { FormListFieldData as AntdFormListFieldData } from 'antd/lib/form/FormList';
import { FieldData as AntdFieldData, NamePath as AntdNamePath } from 'rc-field-form/lib/interface';
import React, { FC, ReactNode, Ref } from 'react';
import { Primitive } from '../kit/internal/types';
type Rules = AntdFormItemProps['rules'];
type GridCol = {
    span: number;
};
type TriggerEvent = 'onChange' | 'onSubmit';
interface FormItemProps {
    children?: ReactNode;
    className?: string;
    dependencies?: AntdNamePath[];
    extra?: ReactNode;
    field?: AntdFormListFieldData;
    hidden?: boolean;
    initialValue?: Primitive | Primitive[];
    label?: ReactNode;
    labelCol?: GridCol;
    max?: number;
    maxMessage?: string;
    name?: string | number | (string | number)[];
    noStyle?: boolean;
    required?: boolean;
    requiredMessage?: string;
    rules?: Rules;
    tooltip?: LabelTooltipType;
    validateMessage?: string;
    validateStatus?: 'success' | 'warning' | 'error' | 'validating';
    validateTrigger?: TriggerEvent[];
    valuePropName?: string;
}
interface FormProps {
    autoComplete?: string;
    children?: ReactNode;
    className?: string;
    fields?: AntdFieldData[];
    form?: AntdFormProps['form'];
    hidden?: boolean;
    id?: string;
    initialValues?: object;
    labelCol?: GridCol;
    layout?: 'horizontal' | 'vertical' | 'inline';
    name?: string;
    noValidate?: boolean;
    onFieldsChange?: AntdFormProps['onFieldsChange'];
    onFinish?: AntdFormProps['onFinish'];
    onValuesChange?: AntdFormProps['onValuesChange'];
    ref?: Ref<AntdFormInstance>;
    wrapperCol?: GridCol;
}
type Form = JSX.Element & {
    Item?: FC<FormItemProps>;
    List?: typeof AntdForm.List;
    useForm?: typeof AntdForm.useForm;
};
declare const Form: {
    ({ noValidate, ...props }: FormProps): JSX.Element;
    Item: React.FC<FormItemProps>;
    List: React.FC<import("antd/es/form").FormListProps>;
    ErrorList: ({ ...props }: ErrorListProps) => JSX.Element;
    useForm: typeof import("antd/es/form/Form").useForm;
    useWatch: typeof import("rc-field-form/es/useWatch").default;
};
export declare const hasErrors: (form: FormInstance) => boolean;
export type FormInstance<Values = any> = AntdFormInstance<Values>;
export type FormListFieldData = AntdFormListFieldData;
export default Form;
//# sourceMappingURL=Form.d.ts.map