import { PropType, CSSProperties, ExtractPropTypes } from 'vue';
import type { ExtractPublicPropTypes } from '../../_utils';
import { FormItemRule, LabelAlign, LabelPlacement, FormItemInternalValidate } from './interface';
export declare const formItemProps: {
    readonly label: {
        readonly type: PropType<string | false | undefined>;
        readonly default: undefined;
    };
    readonly labelWidth: PropType<string | number>;
    readonly labelStyle: PropType<string | CSSProperties>;
    readonly labelAlign: PropType<LabelAlign>;
    readonly labelPlacement: PropType<LabelPlacement>;
    readonly path: StringConstructor;
    readonly first: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly rulePath: StringConstructor;
    readonly required: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly showRequireMark: {
        readonly type: PropType<boolean | undefined>;
        readonly default: undefined;
    };
    readonly showFeedback: {
        readonly type: PropType<boolean | undefined>;
        readonly default: undefined;
    };
    readonly rule: PropType<FormItemRule | FormItemRule[]>;
    readonly size: PropType<"small" | "medium" | "large">;
    readonly ignorePathChange: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly validationStatus: PropType<"error" | "success" | "warning">;
    readonly feedback: StringConstructor;
    readonly theme: PropType<import("../../_mixins").Theme<"Form", {
        lineHeight: string;
        labelTextColor: string;
        asteriskColor: string;
        feedbackTextColorError: string;
        feedbackTextColorWarning: string;
        feedbackTextColor: string;
        blankHeightSmall: string;
        blankHeightMedium: string;
        blankHeightLarge: string;
        feedbackPadding: string;
        feedbackHeightSmall: string;
        feedbackHeightMedium: string;
        feedbackHeightLarge: string;
        feedbackFontSizeSmall: string;
        feedbackFontSizeMedium: string;
        feedbackFontSizeLarge: string;
        labelFontSizeLeftSmall: string;
        labelFontSizeLeftMedium: string;
        labelFontSizeLeftLarge: string;
        labelFontSizeTopSmall: string;
        labelFontSizeTopMedium: string;
        labelFontSizeTopLarge: string;
        labelHeightSmall: string;
        labelHeightMedium: string;
        labelHeightLarge: string;
        labelPaddingVertical: string;
        labelPaddingHorizontal: string;
        labelTextAlignVertical: string;
        labelTextAlignHorizontal: string;
    }, any>>;
    readonly themeOverrides: PropType<import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Form", {
        lineHeight: string;
        labelTextColor: string;
        asteriskColor: string;
        feedbackTextColorError: string;
        feedbackTextColorWarning: string;
        feedbackTextColor: string;
        blankHeightSmall: string;
        blankHeightMedium: string;
        blankHeightLarge: string;
        feedbackPadding: string;
        feedbackHeightSmall: string;
        feedbackHeightMedium: string;
        feedbackHeightLarge: string;
        feedbackFontSizeSmall: string;
        feedbackFontSizeMedium: string;
        feedbackFontSizeLarge: string;
        labelFontSizeLeftSmall: string;
        labelFontSizeLeftMedium: string;
        labelFontSizeLeftLarge: string;
        labelFontSizeTopSmall: string;
        labelFontSizeTopMedium: string;
        labelFontSizeTopLarge: string;
        labelHeightSmall: string;
        labelHeightMedium: string;
        labelHeightLarge: string;
        labelPaddingVertical: string;
        labelPaddingHorizontal: string;
        labelTextAlignVertical: string;
        labelTextAlignHorizontal: string;
    }, any>>>;
    readonly builtinThemeOverrides: PropType<import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Form", {
        lineHeight: string;
        labelTextColor: string;
        asteriskColor: string;
        feedbackTextColorError: string;
        feedbackTextColorWarning: string;
        feedbackTextColor: string;
        blankHeightSmall: string;
        blankHeightMedium: string;
        blankHeightLarge: string;
        feedbackPadding: string;
        feedbackHeightSmall: string;
        feedbackHeightMedium: string;
        feedbackHeightLarge: string;
        feedbackFontSizeSmall: string;
        feedbackFontSizeMedium: string;
        feedbackFontSizeLarge: string;
        labelFontSizeLeftSmall: string;
        labelFontSizeLeftMedium: string;
        labelFontSizeLeftLarge: string;
        labelFontSizeTopSmall: string;
        labelFontSizeTopMedium: string;
        labelFontSizeTopLarge: string;
        labelHeightSmall: string;
        labelHeightMedium: string;
        labelHeightLarge: string;
        labelPaddingVertical: string;
        labelPaddingHorizontal: string;
        labelTextAlignVertical: string;
        labelTextAlignHorizontal: string;
    }, any>>>;
};
export declare type FormItemSetupProps = ExtractPropTypes<typeof formItemProps>;
export declare type FormItemProps = ExtractPublicPropTypes<typeof formItemProps>;
export declare const formItemPropKeys: ("label" | "size" | "first" | "path" | "theme" | "themeOverrides" | "builtinThemeOverrides" | "labelPlacement" | "labelAlign" | "required" | "labelWidth" | "showRequireMark" | "showFeedback" | "labelStyle" | "rulePath" | "rule" | "ignorePathChange" | "validationStatus" | "feedback")[];
declare const _default: import("vue").DefineComponent<{
    readonly label: {
        readonly type: PropType<string | false | undefined>;
        readonly default: undefined;
    };
    readonly labelWidth: PropType<string | number>;
    readonly labelStyle: PropType<string | CSSProperties>;
    readonly labelAlign: PropType<LabelAlign>;
    readonly labelPlacement: PropType<LabelPlacement>;
    readonly path: StringConstructor;
    readonly first: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly rulePath: StringConstructor;
    readonly required: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly showRequireMark: {
        readonly type: PropType<boolean | undefined>;
        readonly default: undefined;
    };
    readonly showFeedback: {
        readonly type: PropType<boolean | undefined>;
        readonly default: undefined;
    };
    readonly rule: PropType<FormItemRule | FormItemRule[]>;
    readonly size: PropType<"small" | "medium" | "large">;
    readonly ignorePathChange: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly validationStatus: PropType<"error" | "success" | "warning">;
    readonly feedback: StringConstructor;
    readonly theme: PropType<import("../../_mixins").Theme<"Form", {
        lineHeight: string;
        labelTextColor: string;
        asteriskColor: string;
        feedbackTextColorError: string;
        feedbackTextColorWarning: string;
        feedbackTextColor: string;
        blankHeightSmall: string;
        blankHeightMedium: string;
        blankHeightLarge: string;
        feedbackPadding: string;
        feedbackHeightSmall: string;
        feedbackHeightMedium: string;
        feedbackHeightLarge: string;
        feedbackFontSizeSmall: string;
        feedbackFontSizeMedium: string;
        feedbackFontSizeLarge: string;
        labelFontSizeLeftSmall: string;
        labelFontSizeLeftMedium: string;
        labelFontSizeLeftLarge: string;
        labelFontSizeTopSmall: string;
        labelFontSizeTopMedium: string;
        labelFontSizeTopLarge: string;
        labelHeightSmall: string;
        labelHeightMedium: string;
        labelHeightLarge: string;
        labelPaddingVertical: string;
        labelPaddingHorizontal: string;
        labelTextAlignVertical: string;
        labelTextAlignHorizontal: string;
    }, any>>;
    readonly themeOverrides: PropType<import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Form", {
        lineHeight: string;
        labelTextColor: string;
        asteriskColor: string;
        feedbackTextColorError: string;
        feedbackTextColorWarning: string;
        feedbackTextColor: string;
        blankHeightSmall: string;
        blankHeightMedium: string;
        blankHeightLarge: string;
        feedbackPadding: string;
        feedbackHeightSmall: string;
        feedbackHeightMedium: string;
        feedbackHeightLarge: string;
        feedbackFontSizeSmall: string;
        feedbackFontSizeMedium: string;
        feedbackFontSizeLarge: string;
        labelFontSizeLeftSmall: string;
        labelFontSizeLeftMedium: string;
        labelFontSizeLeftLarge: string;
        labelFontSizeTopSmall: string;
        labelFontSizeTopMedium: string;
        labelFontSizeTopLarge: string;
        labelHeightSmall: string;
        labelHeightMedium: string;
        labelHeightLarge: string;
        labelPaddingVertical: string;
        labelPaddingHorizontal: string;
        labelTextAlignVertical: string;
        labelTextAlignHorizontal: string;
    }, any>>>;
    readonly builtinThemeOverrides: PropType<import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Form", {
        lineHeight: string;
        labelTextColor: string;
        asteriskColor: string;
        feedbackTextColorError: string;
        feedbackTextColorWarning: string;
        feedbackTextColor: string;
        blankHeightSmall: string;
        blankHeightMedium: string;
        blankHeightLarge: string;
        feedbackPadding: string;
        feedbackHeightSmall: string;
        feedbackHeightMedium: string;
        feedbackHeightLarge: string;
        feedbackFontSizeSmall: string;
        feedbackFontSizeMedium: string;
        feedbackFontSizeLarge: string;
        labelFontSizeLeftSmall: string;
        labelFontSizeLeftMedium: string;
        labelFontSizeLeftLarge: string;
        labelFontSizeTopSmall: string;
        labelFontSizeTopMedium: string;
        labelFontSizeTopLarge: string;
        labelHeightSmall: string;
        labelHeightMedium: string;
        labelHeightLarge: string;
        labelPaddingVertical: string;
        labelPaddingHorizontal: string;
        labelTextAlignVertical: string;
        labelTextAlignHorizontal: string;
    }, any>>>;
}, {
    cssVars: import("vue").ComputedRef<{
        '--bezier': string;
        '--line-height': string;
        '--blank-height': string;
        '--label-font-size': string;
        '--label-height': string;
        '--label-padding': string;
        '--asterisk-color': string;
        '--label-text-color': string;
        '--feedback-padding': string;
        '--feedback-font-size': string;
        '--feedback-height': string;
        '--feedback-text-color': string;
        '--feedback-text-color-warning': string;
        '--feedback-text-color-error': string;
        '--label-text-align': string;
    }>;
    validate: import("./interface").FormItemValidate;
    restoreValidation: () => void;
    path?: string | undefined;
    internalValidate: FormItemInternalValidate;
    mergedSize: import("vue").ComputedRef<import("./interface").Size>;
    validationErrored: import("vue").Ref<boolean>;
    mergedLabelStyle: import("vue").ComputedRef<(string | CSSProperties | undefined)[]>;
    mergedLabelPlacement: import("vue").ComputedRef<LabelPlacement>;
    mergedLabelAlign: import("vue").ComputedRef<LabelAlign>;
    mergedShowRequireMark: import("vue").ComputedRef<boolean | undefined>;
    mergedValidationStatus: import("vue").ComputedRef<"error" | "success" | "warning" | undefined>;
    mergedShowFeedback: import("vue").ComputedRef<boolean>;
    mergedClsPrefix: import("vue").ComputedRef<string>;
    mergedRequired: import("vue").ComputedRef<boolean>;
    hasFeedback: import("vue").ComputedRef<number | true>;
    feedbackId: import("vue").Ref<string>;
    explains: import("vue").Ref<string[]>;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
    first: boolean;
    required: boolean;
    ignorePathChange: boolean;
} & {
    label?: string | false | undefined;
    size?: "small" | "medium" | "large" | undefined;
    path?: string | undefined;
    theme?: import("../../_mixins").Theme<"Form", {
        lineHeight: string;
        labelTextColor: string;
        asteriskColor: string;
        feedbackTextColorError: string;
        feedbackTextColorWarning: string;
        feedbackTextColor: string;
        blankHeightSmall: string;
        blankHeightMedium: string;
        blankHeightLarge: string;
        feedbackPadding: string;
        feedbackHeightSmall: string;
        feedbackHeightMedium: string;
        feedbackHeightLarge: string;
        feedbackFontSizeSmall: string;
        feedbackFontSizeMedium: string;
        feedbackFontSizeLarge: string;
        labelFontSizeLeftSmall: string;
        labelFontSizeLeftMedium: string;
        labelFontSizeLeftLarge: string;
        labelFontSizeTopSmall: string;
        labelFontSizeTopMedium: string;
        labelFontSizeTopLarge: string;
        labelHeightSmall: string;
        labelHeightMedium: string;
        labelHeightLarge: string;
        labelPaddingVertical: string;
        labelPaddingHorizontal: string;
        labelTextAlignVertical: string;
        labelTextAlignHorizontal: string;
    }, any> | undefined;
    themeOverrides?: import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Form", {
        lineHeight: string;
        labelTextColor: string;
        asteriskColor: string;
        feedbackTextColorError: string;
        feedbackTextColorWarning: string;
        feedbackTextColor: string;
        blankHeightSmall: string;
        blankHeightMedium: string;
        blankHeightLarge: string;
        feedbackPadding: string;
        feedbackHeightSmall: string;
        feedbackHeightMedium: string;
        feedbackHeightLarge: string;
        feedbackFontSizeSmall: string;
        feedbackFontSizeMedium: string;
        feedbackFontSizeLarge: string;
        labelFontSizeLeftSmall: string;
        labelFontSizeLeftMedium: string;
        labelFontSizeLeftLarge: string;
        labelFontSizeTopSmall: string;
        labelFontSizeTopMedium: string;
        labelFontSizeTopLarge: string;
        labelHeightSmall: string;
        labelHeightMedium: string;
        labelHeightLarge: string;
        labelPaddingVertical: string;
        labelPaddingHorizontal: string;
        labelTextAlignVertical: string;
        labelTextAlignHorizontal: string;
    }, any>> | undefined;
    builtinThemeOverrides?: import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Form", {
        lineHeight: string;
        labelTextColor: string;
        asteriskColor: string;
        feedbackTextColorError: string;
        feedbackTextColorWarning: string;
        feedbackTextColor: string;
        blankHeightSmall: string;
        blankHeightMedium: string;
        blankHeightLarge: string;
        feedbackPadding: string;
        feedbackHeightSmall: string;
        feedbackHeightMedium: string;
        feedbackHeightLarge: string;
        feedbackFontSizeSmall: string;
        feedbackFontSizeMedium: string;
        feedbackFontSizeLarge: string;
        labelFontSizeLeftSmall: string;
        labelFontSizeLeftMedium: string;
        labelFontSizeLeftLarge: string;
        labelFontSizeTopSmall: string;
        labelFontSizeTopMedium: string;
        labelFontSizeTopLarge: string;
        labelHeightSmall: string;
        labelHeightMedium: string;
        labelHeightLarge: string;
        labelPaddingVertical: string;
        labelPaddingHorizontal: string;
        labelTextAlignVertical: string;
        labelTextAlignHorizontal: string;
    }, any>> | undefined;
    labelPlacement?: LabelPlacement | undefined;
    labelAlign?: LabelAlign | undefined;
    labelWidth?: string | number | undefined;
    showRequireMark?: boolean | undefined;
    showFeedback?: boolean | undefined;
    labelStyle?: string | CSSProperties | undefined;
    rulePath?: string | undefined;
    rule?: FormItemRule | FormItemRule[] | undefined;
    validationStatus?: "error" | "success" | "warning" | undefined;
    feedback?: string | undefined;
}>, {
    label: string | false | undefined;
    first: boolean;
    required: boolean;
    showRequireMark: boolean | undefined;
    showFeedback: boolean | undefined;
    ignorePathChange: boolean;
}>;
export default _default;
