import { ComputedRef, ExtractPropTypes, PropType } from 'vue';
import { TriggerTypes } from '../../utils/types';
export type Rule = Partial<{
    required: boolean;
    message: string | ((value: unknown, rule: Rule) => string);
    formatter: (value: unknown, rule: Rule) => unknown;
    validator: (value: unknown, rule: Rule) => Promise<boolean> | boolean;
    pattern: RegExp;
    trigger: TriggerTypes;
}>;
export type ReturnTypes = boolean | void | Promise<boolean> | null;
export type ValidateType = null | PropErrorInfo | void;
export type AllValidateType = null | PropErrorInfo[] | void;
export type PropErrorInfo = {
    name: string;
    message: string;
};
export interface FormItemExposed {
    validateWithTrigger: (trigger: TriggerTypes) => null | Promise<null | PropErrorInfo>;
    resetValidation: () => void;
    formValue: ComputedRef<unknown>;
    validate: (ruleList?: Rule[]) => Promise<ValidateType>;
    change: () => void;
}
export declare const commonProps: {
    size: {
        type: PropType<number | typeof Symbol.iterator | "link" | "small" | "sub" | "sup" | "length" | "concat" | "slice" | "indexOf" | "lastIndexOf" | "includes" | "at" | "toString" | "charAt" | "charCodeAt" | "localeCompare" | "match" | "replace" | "search" | "split" | "substring" | "toLowerCase" | "toLocaleLowerCase" | "toUpperCase" | "toLocaleUpperCase" | "trim" | "substr" | "valueOf" | "codePointAt" | "endsWith" | "normalize" | "repeat" | "startsWith" | "anchor" | "big" | "blink" | "bold" | "fixed" | "fontcolor" | "fontsize" | "italics" | "strike" | "padStart" | "padEnd" | "trimEnd" | "trimStart" | "trimLeft" | "trimRight" | "matchAll" | "replaceAll">;
        default: null;
    };
    border: {
        type: BooleanConstructor;
        default: boolean;
    };
    labelWidth: {
        type: (StringConstructor | NumberConstructor)[];
        default: null;
    };
    colon: {
        type: BooleanConstructor;
        default: boolean;
    };
    labelAlign: {
        type: PropType<number | typeof Symbol.iterator | "link" | "small" | "sub" | "sup" | "length" | "concat" | "slice" | "indexOf" | "lastIndexOf" | "includes" | "at" | "toString" | "charAt" | "charCodeAt" | "localeCompare" | "match" | "replace" | "search" | "split" | "substring" | "toLowerCase" | "toLocaleLowerCase" | "toUpperCase" | "toLocaleUpperCase" | "trim" | "substr" | "valueOf" | "codePointAt" | "endsWith" | "normalize" | "repeat" | "startsWith" | "anchor" | "big" | "blink" | "bold" | "fixed" | "fontcolor" | "fontsize" | "italics" | "strike" | "padStart" | "padEnd" | "trimEnd" | "trimStart" | "trimLeft" | "trimRight" | "matchAll" | "replaceAll">;
        default: null;
    };
    showError: {
        type: BooleanConstructor;
        default: boolean;
    };
    showErrorMessage: {
        type: BooleanConstructor;
        default: boolean;
    };
    errorMessageAlign: {
        type: PropType<number | typeof Symbol.iterator | "link" | "small" | "sub" | "sup" | "length" | "concat" | "slice" | "indexOf" | "lastIndexOf" | "includes" | "at" | "toString" | "charAt" | "charCodeAt" | "localeCompare" | "match" | "replace" | "search" | "split" | "substring" | "toLowerCase" | "toLocaleLowerCase" | "toUpperCase" | "toLocaleUpperCase" | "trim" | "substr" | "valueOf" | "codePointAt" | "endsWith" | "normalize" | "repeat" | "startsWith" | "anchor" | "big" | "blink" | "bold" | "fixed" | "fontcolor" | "fontsize" | "italics" | "strike" | "padStart" | "padEnd" | "trimEnd" | "trimStart" | "trimLeft" | "trimRight" | "matchAll" | "replaceAll">;
        default: null;
    };
    rules: {
        type: PropType<Partial<{
            required: boolean;
            message: string | ((value: unknown, rule: Rule) => string);
            formatter: (value: unknown, rule: Rule) => unknown;
            validator: (value: unknown, rule: Rule) => Promise<boolean> | boolean;
            pattern: RegExp;
            trigger: TriggerTypes;
        }> | Partial<{
            required: boolean;
            message: string | ((value: unknown, rule: Rule) => string);
            formatter: (value: unknown, rule: Rule) => unknown;
            validator: (value: unknown, rule: Rule) => Promise<boolean> | boolean;
            pattern: RegExp;
            trigger: TriggerTypes;
        }>[] | Record<string, Partial<{
            required: boolean;
            message: string | ((value: unknown, rule: Rule) => string);
            formatter: (value: unknown, rule: Rule) => unknown;
            validator: (value: unknown, rule: Rule) => Promise<boolean> | boolean;
            pattern: RegExp;
            trigger: TriggerTypes;
        }> | Partial<{
            required: boolean;
            message: string | ((value: unknown, rule: Rule) => string);
            formatter: (value: unknown, rule: Rule) => unknown;
            validator: (value: unknown, rule: Rule) => Promise<boolean> | boolean;
            pattern: RegExp;
            trigger: TriggerTypes;
        }>[]>>;
        default: null;
    };
};
export type CommonPropsType = ExtractPropTypes<typeof commonProps>;
