import Vue from 'vue';
import { NormalizedScopedSlot } from 'vue/types/vnode';
import { ErrorCircleFilledIcon as TdErrorCircleFilledIcon } from '@ldesign/icons-vue';
import { Data, FormRule, TypeFormItemProps, TypeFormProps, ValueType, ValidateTriggerType, AllValidateResult, FormErrorMessage, FormItemValidateMessage } from './type';
import { AnalysisValidateResult } from './const';
import Form from './form';
import { ClassName, LNodeReturnValue, Styles } from '../../common.type';
import { FormConfig } from '../config-provider/config-receiver';
export declare type IconConstructor = typeof TdErrorCircleFilledIcon;
export declare type FormInstance = InstanceType<typeof Form>;
export declare type FormItemValidateResult<T extends Data = Data> = {
    [key in keyof T]: boolean | AllValidateResult[];
};
export declare const enum VALIDATE_STATUS {
    TO_BE_VALIDATED = "not",
    SUCCESS = "success",
    FAIL = "fail"
}
export interface FormItemConstructor extends Vue {
    form: FormInstance;
}
declare const _default: import("vue/types/vue").ExtendedVue<{
    t<T>(pattern: T, placement?: import("../config-provider/config-receiver").Placement): string;
} & {
    global: FormConfig;
    classPrefix: string;
    componentName: string;
    installName: string;
    commonSizeClassName: Record<string, string>;
    commonStatusClassName: Record<string, string>;
} & Record<never, any> & import("../config-provider/config-receiver").ConfigComponent & FormItemConstructor & Vue & {
    useGlobalIcon(tdIcon: Record<string, any>): import("../config-provider/type").IconConfig;
}, {
    errorList: any[];
    successList: any[];
    verifyStatus: VALIDATE_STATUS;
    resetValidating: boolean;
    needResetField: boolean;
    initialValue: any;
    freeShowErrorMessage: any;
}, {
    addWatch(): void;
    setChildrenDisabled(disabled: boolean, children: Vue[]): void;
    setValidateMessage(validateMessage: FormItemValidateMessage[]): void;
    validate<T_1>(trigger: ValidateTriggerType, showErrorMessage?: boolean, source?: 'submit-function' | 'submit-event'): Promise<FormItemValidateResult<T_1>>;
    validateOnly<T_2>(trigger: ValidateTriggerType): Promise<FormItemValidateResult<T_2>>;
    analysisValidateResult(trigger: ValidateTriggerType): Promise<AnalysisValidateResult>;
    getLabelContent(): LNodeReturnValue;
    getLabel(): LNodeReturnValue;
    getDefaultIcon(): LNodeReturnValue;
    getIcon(statusIcon: TypeFormProps['statusIcon'] | TypeFormItemProps['statusIcon'], slotStatusIcon: NormalizedScopedSlot, props?: TypeFormItemProps): LNodeReturnValue;
    getSuffixIcon(): LNodeReturnValue;
    getEmptyValue(): ValueType;
    resetField(resetType?: 'empty' | 'initial'): void;
    resetHandler(): void;
}, {
    needErrorMessage: Boolean;
    classes: ClassName;
    extraNode: any;
    labelClasses: ClassName;
    errorClasses: string;
    disabled: boolean;
    contentClasses: ClassName;
    contentStyle: Styles;
    value: any;
    hasColon: boolean;
    needRequiredMark: boolean;
    innerRules: FormRule[];
    errorMessages: FormErrorMessage;
}, {
    for: string;
    help: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    label: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    labelAlign: "left" | "top" | "right";
    labelWidth: string | number;
    name: string | number;
    requiredMark: boolean | Boolean;
    rules: FormRule[];
    showErrorMessage: boolean | Boolean;
    statusIcon: boolean | Boolean | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    successBorder: boolean;
}>;
export default _default;
