import type { ObjectPlain } from '@flex-development/tutils'; import type { ClassType, TransformValidationOptions } from 'class-transformer-validator'; /** * @file Utility - validate * @module grease/utils/validate */ /** * Asynchronously transforms `value` into a `Model` class object and validates * the new class object. * * If validation succeeds, the new class object will be converted back into * a plain object before being returned, unless `plain` is set to `false`. * * Uses [`class-transformer-validator`][1] under the hood. * * @template T - Schema model type * * [1]: https://github.com/MichalLytek/class-transformer-validator * * @async * @param {ClassType} Model - Schema model * @param {any} value - Value to validate against `Model` * @param {boolean} [plain] - Convert back into plain object after validating * @param {TransformValidationOptions} [options] - Validation options * @param {ObjectPlain} [data] - Additional data if error occurs * @return {Promise} Promise containing class or plain object * @throws {ValidationException} */ declare function validate(Model: ClassType, value: any, plain?: boolean, options?: TransformValidationOptions, data?: ObjectPlain): Promise; export default validate;