import { EventEmitter, captureRejectionSymbol } from 'node:events';
import type { Debugger } from './debug';
import type { EventName, EventCallbackResult } from './buses';
interface KyooLoggerBusEventCallbacks {
    [captureRejectionSymbol]: (err: Error, event: EventName, ...args: any[]) => EventCallbackResult;
    emerg: (...args: any[]) => EventCallbackResult;
    alert: (...args: any[]) => EventCallbackResult;
    crit: (...args: any[]) => EventCallbackResult;
    error: (...args: any[]) => EventCallbackResult;
    warning: (...args: any[]) => EventCallbackResult;
    notice: (...args: any[]) => EventCallbackResult;
    info: (...args: any[]) => EventCallbackResult;
    debug: (...args: any[]) => EventCallbackResult;
    trace: (...args: any[]) => EventCallbackResult;
}
type KyooLoggerBusEvent = keyof KyooLoggerBusEventCallbacks;
type KyooLoggerBusEventEmitterEventMap = {
    [K in KyooLoggerBusEvent]: Parameters<KyooLoggerBusEventCallbacks[K]>;
};
export declare class KyooLogger extends EventEmitter<KyooLoggerBusEventEmitterEventMap> {
    constructor(debug?: Debugger);
    /**
     * @private
     * @remarks Do not expose this method
     */
    emit<T extends KyooLoggerBusEvent>(event: T, ...args: KyooLoggerBusEventEmitterEventMap[T]): boolean;
    emerg(...args: any[]): boolean;
    alert(...args: any[]): boolean;
    crit(...args: any[]): boolean;
    error(...args: any[]): boolean;
    warning(...args: any[]): boolean;
    notice(...args: any[]): boolean;
    info(...args: any[]): boolean;
    debug(...args: any[]): boolean;
    trace(...args: any[]): boolean;
}
export type KyooLoggerMethod = 'emerg' | 'alert' | 'crit' | 'error' | 'warning' | 'notice' | 'info' | 'debug' | 'trace';
export {};
