import IODefinitions from '../core/definitions.js'; import IOSchema from '../schema/schema.js'; import '../schema/types/memberdef.js'; import '../schema/schema-types.js'; /** * Result of a validation operation. */ interface ValidationResult { /** True if validation succeeded, false otherwise. */ valid: boolean; /** List of errors found during validation. Empty if valid is true. */ errors: Error[]; /** The validated data, converted to a plain JavaScript object/array. Undefined if valid is false. */ data?: T; } /** * Validates a plain JavaScript object against a schema. * * @param data - The object to validate. * @param schemaOrDefs - The Schema to validate against, or Definitions containing a `$schema`. * @param defs - Optional Definitions context (if schema is passed as first arg). * @returns ValidationResult containing `valid` status, `errors`, and processed `data`. * * @example * ```typescript * const schema = io.schema`{ name: string, age: int }`; * const result = validateObject({ name: 'Alice', age: 30 }, schema); * if (result.valid) { * console.log(result.data); * } else { * console.error(result.errors); * } * ``` */ declare function validateObject(data: object, schemaOrDefs: IOSchema | IODefinitions, defs?: IODefinitions): ValidationResult; /** * Validates an array of objects against a schema. * * @param data - The array to validate. * @param schemaOrDefs - The Schema to validate against, or Definitions containing a `$schema`. * @param defs - Optional Definitions context. * @returns ValidationResult containing `valid` status, `errors`, and processed `data` array. */ declare function validateCollection(data: any[], schemaOrDefs: IOSchema | IODefinitions, defs?: IODefinitions): ValidationResult; /** * Validates data (object or array) against a schema. * Automatically delegates to `validateObject` or `validateCollection` based on input type. * * @param data - The object or array to validate. * @param schemaOrDefs - The Schema to validate against, or Definitions containing a `$schema`. * @param defs - Optional Definitions context. * @returns ValidationResult. */ declare function validate(data: any, schemaOrDefs: IOSchema | IODefinitions, defs?: IODefinitions): ValidationResult; export { type ValidationResult, validate, validateCollection, validateObject };