import { DynamicModule, InjectionToken, NestHybridApplicationOptions } from '@nestjs/common';
import { ContextLoggingModuleInstance } from 'nestjs-context-winston';
export interface MSOptions {
    hybridOptions?: NestHybridApplicationOptions;
}
export type CompressionOptions = 'none' | 'min' | 'average' | 'max';
export interface BaseNestJsServerOptions {
    port?: number;
    bodyLimitMb?: number;
    http2?: boolean;
    compression?: CompressionOptions;
    maxParamLengthKb?: number;
    allowGetBody?: boolean;
}
export interface HealthCheckOptions {
    enabled: boolean;
    healthCheckRoute?: string;
}
export interface GlobalInjections {
    filters?: InjectionToken[];
    guards?: InjectionToken[];
    interceptors?: InjectionToken[];
}
export interface BaseNestjsOptions {
    server?: BaseNestJsServerOptions;
    loggingModule: ContextLoggingModuleInstance;
    cors?: boolean | string[];
    preImports?: DynamicModule['imports'];
    imports: DynamicModule['imports'];
    providers?: DynamicModule['providers'];
    microservices?: MSOptions[];
    healthCheck?: HealthCheckOptions;
    globals?: GlobalInjections;
}
