import Vue from 'vue';
import { NormalizedScopedSlot } from 'vue/types/vnode';
import { Data, FormRule, TdFormItemProps, TdFormProps, ValueType, ValidateTriggerType, AllValidateResult, FormErrorMessage, FormItemValidateMessage } from './type';
import { AnalysisValidateResult } from './const';
import Form from './form';
import { ClassName, TNodeReturnValue, Styles } from '../common';
import { FormConfig } from '../config-provider/config-receiver';
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;
}
export declare function getFormItemClassName(componentName: string, name?: string): string;
declare const _default: import("vue/types/vue").ExtendedVue<{
    useGlobalIcon(tdIcon: Record<string, any>): import("tdesign-icons-vue").GlobalIconConfig;
} & Record<never, any> & import("../config-provider/config-receiver").ConfigComponent & Vue & {
    t<T>(pattern: T, placement?: import("../config-provider/config-receiver").Placement): string;
} & {
    global: FormConfig;
    classPrefix: string;
    componentName: string;
    commonSizeClassName: Record<string, string>;
    commonStatusClassName: Record<string, string>;
} & FormItemConstructor, {
    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(): TNodeReturnValue;
    getLabel(): TNodeReturnValue;
    getDefaultIcon(): TNodeReturnValue;
    getIcon(statusIcon: TdFormProps['statusIcon'] | TdFormItemProps['statusIcon'], slotStatusIcon: NormalizedScopedSlot, props?: TdFormItemProps): TNodeReturnValue;
    getSuffixIcon(): TNodeReturnValue;
    getEmptyValue(): ValueType;
    resetField(resetType?: 'empty' | 'initial'): void;
    resetHandler(): void;
}, {
    needErrorMessage: Boolean;
    classes: ClassName;
    extraNode: JSX.Element;
    labelClasses: ClassName;
    errorClasses: string;
    disabled: boolean;
    contentClasses: ClassName;
    contentStyle: Styles;
    value: any;
    hasColon: boolean;
    needRequiredMark: boolean;
    requiredMarkPosition: string;
    innerRules: FormRule[];
    errorMessages: FormErrorMessage;
    statusClass: string;
}, {
    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;
    requiredMark: any;
    rules: FormRule[];
    showErrorMessage: any;
    status: string;
    statusIcon: any;
    successBorder: boolean;
    tips: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
}>;
export default _default;
