import { ConsolaInstance, LogLevel } from "consola";

//#region src/utils/EventEmitter.d.ts
declare class EventEmitter<TEvents extends Record<string, any>> {
  #private;
  constructor();
  emit<TEventName extends keyof TEvents & string>(eventName: TEventName, ...eventArg: TEvents[TEventName]): void;
  on<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void;
  off<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void;
  removeAll(): void;
}
//#endregion
//#region src/logger.d.ts
type DebugEvent = {
  date: Date;
  logs: string[];
  fileName?: string;
};
type Events = {
  start: [message: string];
  success: [message: string];
  error: [message: string, cause: Error];
  warning: [message: string];
  debug: [DebugEvent];
  info: [message: string];
  progress_start: [{
    id: string;
    size: number;
    message?: string;
  }];
  progressed: [{
    id: string;
    message?: string;
  }];
  progress_stop: [{
    id: string;
  }];
};
declare const LogMapper: {
  readonly silent: number;
  readonly info: 3;
  readonly debug: 4;
};
type Logger = {
  /**
   * Optional config name to show in CLI output
   */
  name?: string;
  logLevel: LogLevel;
  consola?: ConsolaInstance;
  on: EventEmitter<Events>['on'];
  emit: EventEmitter<Events>['emit'];
  writeLogs: () => Promise<string[]>;
};
type Props = {
  name?: string;
  logLevel?: LogLevel;
  consola?: ConsolaInstance;
};
declare function createLogger({
  logLevel,
  name,
  consola: _consola
}?: Props): Logger;
declare function randomColour(text?: string): 'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white' | 'gray';
declare function randomCliColour(text?: string): string;
//#endregion
export { EventEmitter, LogMapper, Logger, createLogger, randomCliColour, randomColour };
//# sourceMappingURL=logger-B-4AXUmB.d.ts.map