import { HandlerInterface, SyncHandlerInterface } from '@livy/contracts/lib/handler-interface';
import { LoggerOptions } from './abstract-logger';
import { AsyncLogger } from './async-logger';
import { MixedLogger } from './mixed-logger';
import { SyncLogger } from './sync-logger';
type AsyncLoggerFactoryOptions = LoggerOptions<HandlerInterface> & {
    mode: 'async';
};
type SyncLoggerFactoryOptions = LoggerOptions<SyncHandlerInterface> & {
    mode: 'sync';
};
type MixedLoggerFactoryOptions = LoggerOptions<HandlerInterface> & {
    mode: 'mixed';
};
export type LoggerFactoryOptions = AsyncLoggerFactoryOptions | SyncLoggerFactoryOptions | MixedLoggerFactoryOptions;
/**
 * Create a logger instance
 *
 * @param name    The name of the logger
 * @param options The options for the logger
 */
export declare function createLogger(name: string, { mode, ...options }?: Partial<LoggerFactoryOptions>): AsyncLogger | MixedLogger | SyncLogger;
export {};
