import { ClassTransformOptions } from 'class-transformer';
import { ValidatorOptions } from 'class-validator';
export interface ObjectValidationOptions {
    transformerOptions?: ClassTransformOptions;
    validatorOptions?: ValidatorOptions;
}
/**
 * Class to validate an object or an array of objects.
 */
export declare class ObjectValidatorService {
    /**
     * Transforme and validate a source object by a decorated class. It works with
     * the `class-validator` and the `class-transformer` packages.
     *
     * By default, the validator will strip every property that is not explicitly exposed
     *
     * @param {new (...params: unknown[]) => T} type Class with validation and transformation decorators.
     * @param {unknown} plain Source object which will be transformed and validated.
     * @param {ObjectValidationOptions} options Transformation and validations options.
     *
     * @return {Promise<T>} The transformed and validated object.
     *
     * {@link https://www.npmjs.com/package/class-transformer class-transformer}
     * {@link https://www.npmjs.com/package/class-validator class-validator}
     *
     * @public
     */
    validate<T>(type: new (...params: unknown[]) => T, plain: unknown, options?: ObjectValidationOptions): Promise<T>;
    /**
     * Validate and transform a list of objects by a decorated class. It works
     * with the `class-validator` and the `class-transformer` packages.
     *
     * By default, the validator will strip every property that is not explicitly exposed
     *
     * @param {new (...params: unknown[]) => T} type Class with validation and transformation decorators.
     * @param {unknown[]} plains Source array of object which will be transformed and validated.
     * @param {ObjectValidationOptions} options Transformation and validations options.
     *
     * @return {Promise<T[]>} Validated and transformed array.
     *
     * {@link https://www.npmjs.com/package/class-transformer class-transformer}
     * {@link https://www.npmjs.com/package/class-validator class-validator}
     *
     * @public
     */
    validateArray<T>(type: new (...params: unknown[]) => T, plains: unknown[], options?: ObjectValidationOptions): Promise<T[]>;
}
