/**
 * Class-validator integration for schema-forge
 *
 * This module provides utilities to infer JSON Schema properties from class-validator decorators.
 */
/**
 * JSON Schema items definition for array elements
 */
export interface InferredArrayItems {
    type?: 'string' | 'number' | 'integer' | 'boolean';
    enum?: (string | number | boolean)[];
    minimum?: number;
    maximum?: number;
    minLength?: number;
    maxLength?: number;
    format?: string;
}
/**
 * Interface for inferred JSON Schema properties from class-validator
 */
export interface InferredSchemaProperties {
    /** When true, property is inferred as array type from @IsArray or array decorators */
    isArray?: boolean;
    /** Inferred schema for array items (from @ArrayContains, or each: true validators) */
    items?: InferredArrayItems;
    maxItems?: number;
    minItems?: number;
    uniqueItems?: boolean;
    maximum?: number;
    minimum?: number;
    type?: 'integer' | 'string' | 'number' | 'array';
    minLength?: number;
    maxLength?: number;
    format?: string;
}
/**
 * Infers JSON Schema properties from class-validator decorators
 *
 * Supported decorators:
 * - IsArray -> isArray: true, type: 'array'
 * - ArrayMaxSize -> maxItems
 * - ArrayMinSize -> minItems
 * - ArrayUnique -> uniqueItems: true
 * - ArrayNotEmpty -> minItems: 1
 * - ArrayContains -> items.enum (when values are primitive)
 * - Max -> maximum (for numbers) or items.maximum (with each: true)
 * - Min -> minimum (for numbers) or items.minimum (with each: true)
 * - IsInt -> type: 'integer' or items.type (with each: true)
 * - MinLength -> minLength (for strings) or items.minLength (with each: true)
 * - MaxLength -> maxLength (for strings) or items.maxLength (with each: true)
 * - IsUrl -> format: 'uri' or items.format (with each: true)
 * - IsEmail -> format: 'email' or items.format (with each: true)
 * - IsPositive -> minimum: 1 or items.minimum (with each: true)
 */
export declare function inferClassValidatorProperties(target: any, propertyName: string): InferredSchemaProperties;
