import { Schema } from './schema.js';
import { DeprecatedHandler, Descriptor, IdentifyMissing, IdentifyRequired, InvalidHandler, Logger, Options, Postprocess, Preprocess, UnknownHandler } from './types.js';
export interface NormalizerOptions {
    logger?: false | Logger;
    loggerPrintWidth?: number;
    descriptor?: Descriptor;
    unknown?: UnknownHandler;
    invalid?: InvalidHandler;
    deprecated?: DeprecatedHandler;
    missing?: IdentifyMissing;
    required?: IdentifyRequired;
    preprocess?: Preprocess;
    postprocess?: Postprocess;
}
export declare const normalize: (options: Options, schemas: Array<Schema<any>>, opts?: NormalizerOptions) => Options;
export declare class Normalizer {
    private _utils;
    private _unknownHandler;
    private _invalidHandler;
    private _deprecatedHandler;
    private _hasDeprecationWarned;
    private _identifyMissing;
    private _identifyRequired;
    private _preprocess;
    private _postprocess;
    constructor(schemas: Array<Schema<any>>, opts?: NormalizerOptions);
    cleanHistory(): void;
    normalize(options: Options): Options;
    private _applyNormalization;
    private _applyRequiredCheck;
    private _partitionOptionKeys;
    private _applyValidation;
    private _applyUnknownHandler;
    private _applyPostprocess;
}
