import Joi, { BasicType, Types } from 'joi';
import { Builder, Function } from '../types';
export declare class JoiSchemaBuilder implements Builder<Joi.AnySchema> {
    private schema;
    type(type: Types): JoiSchemaBuilder;
    private _allowEmpty;
    allowEmpty(allowEmpty: boolean): JoiSchemaBuilder;
    private _valid?;
    valid(valid: unknown[]): JoiSchemaBuilder;
    private defaultValue?;
    default(defaultValue: BasicType): JoiSchemaBuilder;
    private _customOptionsAppliers;
    customOptionsAppliers(customOptionsAppliers: Function<Joi.AnySchema, Joi.AnySchema>[]): JoiSchemaBuilder;
    build(): Joi.AnySchema;
}
