import { FormItemRule } from 'element-plus';
import { Ref } from 'vue';
import { Arrayable } from 'element-plus/es/utils';
export declare function useFormRulePresets(): {
    required: (label?: string, trigger?: FormItemRule["trigger"]) => FormItemRule;
    requiredIf: (required?: boolean, label?: string, trigger?: FormItemRule["trigger"]) => FormItemRule;
    validatorIf: (shouldError: () => boolean, formRef?: Ref<any>, label?: string) => {
        validator: (_: any, __: any, callback: (error?: Error) => void) => void;
        trigger: readonly ["blur", "change"];
    };
    maxLen: (len: number, label?: string, trigger?: Arrayable<string> | undefined) => FormItemRule;
    minLen: (len: number, label?: string, trigger?: Arrayable<string> | undefined) => FormItemRule;
    pattern: (re: RegExp, msg: string, trigger?: Arrayable<string> | undefined) => FormItemRule;
    validator: (fn: (value: any) => true | string | Promise<true | string>, trigger?: Arrayable<string> | undefined) => FormItemRule;
    phone: () => FormItemRule;
    idCard: () => FormItemRule;
    email: () => FormItemRule;
    digits: (label?: string, trigger?: Arrayable<string> | undefined) => FormItemRule;
    intRange: (min: number, max: number, label?: string) => FormItemRule;
    confirmSame: (getOther: () => any, label?: string) => FormItemRule;
    dateAfterToday: (label?: string, trigger?: Arrayable<string> | undefined) => FormItemRule;
    dateBeforeToday: (label?: string, trigger?: Arrayable<string> | undefined) => FormItemRule;
    numberPrecision: (maxIntDigits: number | null, maxFracDigits: number | null, label?: string) => FormItemRule;
    validateRequired: (value: any, fieldName?: string) => boolean;
    validateNumber: (value: any, fieldName?: string) => boolean;
    validateIntRange: (value: any, min: number, max: number, fieldName?: string) => boolean;
    validateChinese: (value: any, fieldName?: string) => boolean;
    validateLength: (value: any, maxLength: number, fieldName?: string) => boolean;
    validateEmail: (value: any, fieldName?: string) => boolean;
    validatePhone: (value: any, fieldName?: string) => boolean;
    validateIdCard: (value: any, fieldName?: string) => boolean;
    validatePattern: (value: any, pattern: RegExp, message: string) => boolean;
    validateMultiple: (value: any, validators: Array<(value: any) => boolean>) => boolean;
    validateField: (value: any, type: string, fieldName: string, options?: any) => boolean;
    validateDecimalPrecision: (value: any, maxIntDigits: number, maxFracDigits: number, fieldName?: string) => boolean;
};
