import { ParameterObject } from '@loopback/openapi-v3';
/**
 * A set of options to pass into the validator functions
 */
export type ValidationOptions = {
    required?: boolean;
};
/**
 * The context information that a validator needs
 */
export type ValidationContext = {
    parameterSpec: ParameterObject;
};
/**
 * Validator class provides a bunch of functions that perform
 * validations on the request parameters and request body.
 */
export declare class Validator {
    ctx: ValidationContext;
    constructor(ctx: ValidationContext);
    /**
     * The validation executed before type coercion. Like
     * checking absence.
     *
     * @param type - A parameter's type.
     * @param value - A parameter's raw value from http request.
     * @param opts - options
     */
    validateParamBeforeCoercion(value: string | object | undefined, opts?: ValidationOptions): void;
    /**
     * Check is a parameter required or not.
     *
     * @param opts
     */
    isRequired(opts?: ValidationOptions): boolean;
    /**
     * Return `true` if the value is empty, return `false` otherwise.
     *
     * @param value
     */
    isAbsent(value: any): boolean;
    /**
     * Return `true` if defined specification is for a url encoded Json object query parameter
     *
     * for url encoded Json object query parameters,
     * schema is defined under content['application/json']
     */
    isUrlEncodedJsonParam(): boolean;
}
