import type { BaseConfitSchema } from '@sesamecare-oss/confit';
import type { middleware } from 'express-openapi-validator';
import type { Level } from 'pino';
import type bodyParser from 'body-parser';
export interface ConfigurationItemEnabled {
    enabled?: boolean;
}
export interface ConfigurationSchema extends BaseConfitSchema {
    trustProxy?: string[] | boolean;
    logging?: {
        level?: Level;
        logRequestBody?: boolean;
        logResponseBody?: boolean;
        preLog?: boolean;
    };
    routing?: {
        openapi?: boolean | Partial<Parameters<typeof middleware>[0]>;
        routes?: string;
        freezeQuery?: boolean;
        etag?: boolean;
        cookieParser?: boolean;
        bodyParsers?: {
            json?: boolean | Parameters<typeof bodyParser.json>[0];
            form?: boolean | Parameters<typeof bodyParser.urlencoded>[0];
        };
        static?: ConfigurationItemEnabled & {
            path?: string;
            mountPath?: string;
        };
        finalHandlers: {
            notFound?: boolean;
            errors?: ConfigurationItemEnabled & {
                render?: boolean;
                unnest: boolean;
            };
        };
    };
    server: {
        internalPort?: number;
        port?: number;
        key?: string | Uint8Array;
        certificate?: string | Uint8Array;
        hostname?: string;
    };
}
