import type { ValidationArguments, ValidationOptions, ValidatorConstraintInterface } from 'class-validator'; import type { EntitySchema, FindOptionsWhere, ObjectType } from 'typeorm'; export declare class IsUniqueValidator implements ValidatorConstraintInterface { constructor(); /** * 解析 Entity 引用,支持多种形式: * 1. Entity 类直接引用 * 2. 延迟函数 () => Entity * 3. 字符串名称 "EntityName" * 4. undefined (从属性名自动推断) */ private resolveEntity; /** * 从属性名推断 Entity 名称 * 例如:appId -> App, userId -> User */ private inferEntityNameFromProperty; validate(value: string, args: IUniqueValidationArguments): Promise; defaultMessage(args: ValidationArguments): string; } /** * IsUnique 配置选项 */ export interface IsUniqueOptions { /** * 手动指定用于判断是否为新建的字段名 * 适用于视图(View)等没有主键的场景 * 例如:uniqueKeys: ['id'] 或 uniqueKeys: ['id', 'version'] */ uniqueKeys?: string[]; /** * 数据源名称或 DataSource 实例 * 用于多数据源场景,指定使用哪个数据源进行验证 * 例如:'readonly', 'report', 或直接传入 DataSource 实例 */ dataSource?: string; } type UniqueValidationConstraints = [ (ObjectType | EntitySchema | string | (() => ObjectType | EntitySchema | string)), (validationArguments: ValidationArguments) => FindOptionsWhere, IsUniqueOptions? ]; interface IUniqueValidationArguments extends ValidationArguments { constraints: UniqueValidationConstraints; } export declare function IsUnique(constraints: Partial>, validationOptions?: ValidationOptions): PropertyDecorator; export {};