import { ModuleMetadata } from '@nestjs/common';
import { ILoggerOptions, ILogger } from '../types/logger.types.js';
import { MiddlewareConfigProxy, InjectionToken, OptionalFactoryDependency } from '@nestjs/common/interfaces';
import 'pino';
import 'winston';

type IParams = ILoggerOptions & {
    forRoutes?: Parameters<MiddlewareConfigProxy['forRoutes']>;
    exclude?: Parameters<MiddlewareConfigProxy['exclude']>;
};
interface LoggerModuleAsyncParams extends Pick<ModuleMetadata, 'imports' | 'providers'> {
    useFactory: (...args: unknown[]) => ILoggerOptions | Promise<ILoggerOptions>;
    inject?: Array<InjectionToken | OptionalFactoryDependency>;
}
declare const PARAMS_PROVIDER_TOKEN = "nestjs-logitron";
type PassedLogger = {
    logger: ILogger;
};

export { type IParams, type LoggerModuleAsyncParams, PARAMS_PROVIDER_TOKEN, type PassedLogger };
