import { ILogger, ILogMiddleware, LogLevels } from '../shared.js';
import { MiddlewareResult } from '../../middlewares/shared.js';
import { MulticastLogMiddleware } from './multicast.js';
export declare class LogRouteMiddleware<TMiddleware extends ILogMiddleware> implements ILogMiddleware {
    readonly pattern: string;
    protected readonly logger: TMiddleware;
    readonly logLevel: LogLevels;
    constructor(pattern: string, logger: TMiddleware, logLevel: LogLevels);
    shouldHandle(logLevel: LogLevels, namespaces: string[]): boolean;
    handle(level: LogLevels, namespaces: string[], ...context: unknown[]): MiddlewareResult;
}
export declare class MulticastLogRouteMiddleware extends LogRouteMiddleware<MulticastLogMiddleware> {
    constructor(pattern: string, logLevel: LogLevels);
    readonly use: MulticastLogMiddleware['use'];
}
export declare class LoggerRoute implements ILogger {
    private pattern;
    constructor(pattern: string);
    use(namespace: string): LoggerRoute;
    pipe(logger: ILogger): void;
    readonly error: MulticastLogRouteMiddleware;
    readonly warn: MulticastLogRouteMiddleware;
    readonly help: MulticastLogRouteMiddleware;
    readonly data: MulticastLogRouteMiddleware;
    readonly info: MulticastLogRouteMiddleware;
    readonly debug: MulticastLogRouteMiddleware;
    readonly prompt: MulticastLogRouteMiddleware;
    readonly verbose: MulticastLogRouteMiddleware;
    readonly input: MulticastLogRouteMiddleware;
    readonly silly: MulticastLogRouteMiddleware;
}
