/**
 * 表单验证类，用于确保输入数据的有效性。
 * 支持自定义验证规则、错误提示和异步验证。
 * @example
 * ```typescript
 * const validator = new FormValidator();
 * validator.addRule('username', (value) => value.length >= 3, '用户名至少需要 3 个字符');
 * validator.addRule('username', (value) => /^[a-zA-Z0-9_]+$/.test(value), '用户名只能包含字母、数字和下划线');
 * const result = await validator.validateField('username', 'ab');
 * console.log(result); // { isValid: false, errors: ['用户名至少需要 3 个字符', '用户名只能包含字母、数字和下划线'] }
 * ```
 */
declare class FormValidator {
    private rules;
    private errorMessages;
    /**
     * 为指定字段添加验证规则。
     * @param field - 要验证的字段名。
     * @param rule - 验证规则函数，返回布尔值或 Promise<布尔值>。
     * @param message - 验证失败时的错误提示信息。
     * @example
     * ```typescript
     * const validator = new FormValidator();
     * validator.addRule('email', (value) => typeof value === 'string' && /^[\w-]+(\.[\w-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*\.[a-z]{2,})$/i.test(value), '请输入有效的邮箱地址');
     * ```
     */
    addRule(field: string, rule: (value: unknown) => boolean | Promise<boolean>, message: string): void;
    /**
     * 验证指定字段的值。
     * @param field - 要验证的字段名。
     * @param value - 要验证的值。
     * @returns 包含验证结果和错误信息的对象。
     * @example
     * ```typescript
     * const validator = new FormValidator();
     * validator.addRule('age', (value) => typeof value === 'number' && value >= 18, '必须年满 18 岁');
     * const result = await validator.validateField('age', 16);
     * console.log(result); // { isValid: false, errors: ['必须年满 18 岁'] }
     * ```
     */
    validateField(field: string, value: unknown): Promise<{
        isValid: boolean;
        errors: string[];
    }>;
    /**
     * 验证整个表单。
     * @param formData - 包含表单字段和值的对象。
     * @returns 包含每个字段验证结果和错误信息的数组。
     * @example
     * ```typescript
     * const validator = new FormValidator();
     * validator.addRule('username', (value) => value.length >= 3, '用户名至少需要 3 个字符');
     * validator.addRule('password', (value) => value.length >= 6, '密码至少需要 6 个字符');
     * const formData = { username: 'ab', password: '123' };
     * const result = await validator.validateForm(formData);
     * console.log(result); // [ { field: 'username', isValid: false, errors: ['用户名至少需要 3 个字符'] }, { field: 'password', isValid: false, errors: ['密码至少需要 6 个字符'] } ]
     * ```
     */
    validateForm(formData: {
        [field: string]: unknown;
    }): Promise<{
        field: string;
        isValid: boolean;
        errors: string[];
    }[]>;
    /**
     * 添加常用的手机号验证规则。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '请输入有效的手机号'。
     */
    addPhoneRule(field: string, message?: string): void;
    /**
     * 添加常用的邮箱验证规则。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '请输入有效的邮箱地址'。
     */
    addEmailRule(field: string, message?: string): void;
    /**
     * 添加常用的身份证验证规则。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '请输入有效的身份证号码'。
     */
    addIDCardRule(field: string, message?: string): void;
    /**
     * 添加常用的 URL 验证规则。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '请输入有效的 URL'。
     * @example
     * ```typescript
     * const validator = new FormValidator();
     * validator.addURLRule('website', '请输入有效的网站地址');
     * const result = await validator.validateField('website', 'https://example.com');
     * console.log(result); // { isValid: true, errors: [] }
     * ```
     */
    addURLRule(field: string, message?: string): void;
    /**
     * 添加常用的数字范围验证规则。
     * @param field - 要验证的字段名。
     * @param min - 最小值。
     * @param max - 最大值。
     * @param message - 验证失败时的错误提示信息，默认为 '数值必须在 {min} 到 {max} 之间'。
     */
    addNumberRangeRule(field: string, min: number, max: number, message?: string): void;
    /**
     * 添加常用的邮政编码验证规则。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '请输入有效的邮政编码'。
     */
    addPostalCodeRule(field: string, message?: string): void;
    /**
     * 添加常用的用户名格式验证规则。
     * 允许字母、数字、下划线，长度 3 到 20 个字符。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '用户名必须由 3 到 20 个字母、数字或下划线组成'。
     */
    addUsernameRule(field: string, message?: string): void;
    /**
     * 添加常用的 IPv4 地址验证规则。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '请输入有效的 IPv4 地址'。
     */
    addIPv4Rule(field: string, message?: string): void;
    /**
     * 添加常用的日期格式验证规则。
     * 支持 YYYY-MM-DD 格式。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '请输入有效的日期格式（YYYY-MM-DD）'。
     */
    addDateRule(field: string, message?: string): void;
    /**
     * 添加常用的 IPv6 地址验证规则。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '请输入有效的 IPv6 地址'。
     */
    addIPv6Rule(field: string, message?: string): void;
    /**
     * 添加常用的信用卡号验证规则。
     * 支持 Visa、MasterCard、American Express 等常见信用卡号。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '请输入有效的信用卡号'。
     */
    addCreditCardRule(field: string, message?: string): void;
    /**
     * 添加常用的 MAC 地址验证规则。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '请输入有效的 MAC 地址'。
     */
    addMACRule(field: string, message?: string): void;
    /**
     * 添加常用的银行卡号验证规则。
     * 简单验证长度为 12 到 19 位数字。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '请输入有效的银行卡号'。
     */
    addBankCardRule(field: string, message?: string): void;
    /**
     * 添加常用的社会信用代码验证规则。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '请输入有效的社会信用代码'。
     */
    addSocialCreditCodeRule(field: string, message?: string): void;
    /**
     * 添加常用的车牌号验证规则。
     * 支持普通燃油车和新能源车号牌。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '请输入有效的车牌号'。
     */
    addLicensePlateRule(field: string, message?: string): void;
    /**
     * 添加常用的 QQ 号验证规则。
     * QQ 号通常为 5 到 11 位数字。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '请输入有效的 QQ 号'。
     */
    addQQRule(field: string, message?: string): void;
    /**
     * 添加常用的微信号验证规则。
     * 微信号以字母开头，允许 6 到 20 位字母、数字、下划线和减号。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '请输入有效的微信号'。
     */
    addWeChatRule(field: string, message?: string): void;
    /**
     * 添加常用的密码强度验证规则。
     * 密码至少 8 位，包含大小写字母、数字和特殊字符中的至少三种。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '密码至少 8 位，需包含大小写字母、数字和特殊字符中的至少三种'。
     */
    addPasswordStrengthRule(field: string, message?: string): void;
    /**
     * 添加常用的中文姓名验证规则。
     * 允许 2 到 4 个中文字符。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '请输入有效的中文姓名'。
     */
    addChineseNameRule(field: string, message?: string): void;
    /**
     * 添加文件扩展名验证规则。
     * @param field - 要验证的字段名。
     * @param extensions - 允许的文件扩展名数组。
     * @param message - 验证失败时的错误提示信息，默认为 '文件格式不支持'。
     * @returns 无返回值，该方法直接将验证规则添加到验证器中。
     */
    addFileExtensionRule(field: string, extensions: string[], message?: string): void;
    /**
     * 添加必填字段验证规则。
     * @param field - 要验证的字段名。
     * @param message - 验证失败时的错误提示信息，默认为 '此字段为必填项'。
     * @returns 无返回值，该方法直接将验证规则添加到验证器中。
     */
    addRequiredRule(field: string, message?: string): void;
    /**
     * 添加最大长度验证规则。
     * @param field - 要验证的字段名。
     * @param maxLength - 最大长度。
     * @param message - 验证失败时的错误提示信息，默认为 '长度不能超过 {maxLength} 个字符'。
     * @returns 无返回值，该方法直接将验证规则添加到验证器中。
     */
    addMaxLengthRule(field: string, maxLength: number, message?: string): void;
    /**
     * 添加最小长度验证规则。
     * @param field - 要验证的字段名。
     * @param minLength - 最小长度。
     * @param message - 验证失败时的错误提示信息，默认为 '长度不能小于 {minLength} 个字符'。
     * @returns 无返回值，该方法直接将验证规则添加到验证器中。
     */
    addMinLengthRule(field: string, minLength: number, message?: string): void;
}
export { FormValidator };
