import type Joi from 'joi';
import { type OutputFormatter } from './text/ansi';
interface SchemaLine {
    level: number;
    text: string;
}
/**
 * Describes a Joi schema in a human-readable way.
 */
export declare function describeSchema(schema: Joi.Schema, f?: OutputFormatter): string;
/**
 * Provides a generic description for any Joi schema.
 * You probably want to use {@link describeSchema}.
 */
export declare function genericDescription(level: number, formatter: OutputFormatter, name: string, desc: Joi.Description | undefined): SchemaLine[];
/**
 * Creates the header line(s) for a schema description.
 */
export declare function headerLine(level: number, formatter: OutputFormatter, name: string, type: string, flags: object | undefined): SchemaLine[];
/**
 * Describes a Joi object schema.
 */
export declare function describeObject(level: number, formatter: OutputFormatter, desc: Joi.Description): SchemaLine[];
export {};
