/**
 * Validation Error
 * Structured error response for validation failures with field-level details
 */
export interface FieldError {
    field: string;
    message: string;
    rule: string;
}
export interface IValidationError extends Error {
    errors: FieldError[];
    toObject(): Record<string, string[]>;
    getFieldError(field: string): string | undefined;
    hasFieldError(field: string): boolean;
}
/**
 * Convert errors array to field:errors object
 */
export declare const toObject: (errors: FieldError[]) => Record<string, string[]>;
/**
 * Get first error message for a field
 */
export declare const getFieldError: (errors: FieldError[], field: string) => string | undefined;
/**
 * Check if field has errors
 */
export declare const hasFieldError: (errors: FieldError[], field: string) => boolean;
/**
 * Create a validation error instance
 */
declare const createValidationError: (errors: FieldError[], message?: string) => IValidationError;
/**
 * ValidationError namespace - sealed for immutability
 */
export declare const ValidationError: Readonly<{
    create: (errors: FieldError[], message?: string) => IValidationError;
    toObject: (errors: FieldError[]) => Record<string, string[]>;
    getFieldError: (errors: FieldError[], field: string) => string | undefined;
    hasFieldError: (errors: FieldError[], field: string) => boolean;
}>;
export { createValidationError };
//# sourceMappingURL=ValidationError.d.ts.map