import type { DomainResponse, IPResponse, ASNResponse, RDAPResponse } from '../../shared/types'; import { RDAPifyError } from '../../shared/errors/base.error'; export interface ValidationError { field: string; message: string; severity: 'error'; } export interface ValidationWarning { field: string; message: string; severity: 'warning'; } export interface ValidationResult { valid: boolean; errors: ValidationError[]; warnings: ValidationWarning[]; } export type ValidationMode = 'strict' | 'lenient' | 'off'; export interface ResponseValidatorOptions { mode?: ValidationMode; onViolation?: 'throw' | 'warn' | 'ignore'; } export declare class ResponseValidationError extends RDAPifyError { readonly validationResult: ValidationResult; constructor(validationResult: ValidationResult); } export declare class ResponseValidator { private readonly mode; private readonly onViolation; constructor(options?: ResponseValidatorOptions); validateDomain(response: DomainResponse): ValidationResult; validateIP(response: IPResponse): ValidationResult; validateASN(response: ASNResponse): ValidationResult; validate(response: RDAPResponse): ValidationResult; getMode(): ValidationMode; private handleResult; } //# sourceMappingURL=ResponseValidator.d.ts.map