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