import 'source-map-support/register';
import { LogLevel } from './LoggerConfiguration';
export declare type LoggerBuilder<T, P extends any[]> = (...args: P) => T;
export interface LoggerImplementation<T, P extends any[]> {
    log(...args: any[]): Promise<any>;
    getImplementation(group: string, name: string): T;
    setConfig<T>(config: T, group: string, name: string): void;
    setLogLevel(logLevel: LogLevel, group: string, name: string): void;
    setMetadata(metadata: any, group: string, name: string): void;
    setLoggerBuilder(builder: LoggerBuilder<T, P>): void;
}
export interface LoggerBinding<T = any, P extends any[] = any> {
    getLoggerImplementation(): LoggerImplementation<T, P>;
    getVendor(): string;
    getVersion(): string;
}
export declare class LoggerBindings {
    private readonly bindings;
    constructor(additionalPaths?: string[]);
    registerBinding(binding: LoggerBinding): void;
    getBindings(): LoggerBinding[];
    private getAllModuleFolders;
    private visitNodeModules;
    private getAllLoggerBindings;
}
