/**
 * @file conext for form & children
 * @author chenqiang(chenqiang03)
 */
import * as React from 'react';
import { FormProviderProps as RcFormProviderProps } from 'rc-field-form/lib/FormContext';
import { ColProps } from '../grid/col';
import { FormLabelAlign } from './interface';
import { RequiredMark } from './Form';
import { ValidateStatus } from './FormItem';
export interface FormContextProps {
    vertical: boolean;
    name?: string;
    colon?: boolean;
    cols?: number;
    labelAlign: FormLabelAlign;
    labelCol?: ColProps;
    labelWidth?: number | string;
    inputMaxWidth?: number | string;
    wrapperCol?: ColProps;
    requiredMark?: RequiredMark;
    keepDisplayExtra?: boolean;
    itemRef: (name: (string | number)[]) => (node: React.ReactElement) => void;
}
export declare const FormContext: React.Context<FormContextProps>;
export interface FormItemContextProps {
    updateItemErrors: (name: string, errors: string[], originName?: string) => void;
}
export declare const FormItemContext: React.Context<FormItemContextProps>;
export interface FormProviderProps extends Omit<RcFormProviderProps, 'validateMessages'> {
    prefixCls?: string;
    keepDisplayExtra?: boolean;
}
export declare const FormProvider: React.FC<FormProviderProps>;
export interface FormItemPrefixContextProps {
    prefixCls: string;
    status?: ValidateStatus;
}
export declare const FormItemPrefixContext: React.Context<FormItemPrefixContextProps>;
export interface FormItemStatusContextProps {
    isFormItemInput?: boolean;
    status?: ValidateStatus;
    hasFeedback?: boolean;
    feedbackIcon?: React.ReactNode;
}
export declare const FormItemInputContext: React.Context<FormItemStatusContextProps>;
