///
import type { LogLevel, LogType } from './constants';
import type { ConsolaOptions, ConsolaReporter, InputLogObject, LogObject } from './types';
export declare class Consola {
options: ConsolaOptions;
_lastLog: {
serialized?: string;
object?: LogObject;
count?: number;
time?: Date;
timeout?: ReturnType;
};
_mockFn?: ConsolaOptions['mockFn'];
constructor(options?: Partial);
get level(): LogLevel;
set level(level: LogLevel);
create(options: Partial): ConsolaInstance;
withDefaults(defaults: InputLogObject): ConsolaInstance;
withTag(tag: string): ConsolaInstance;
addReporter(reporter: ConsolaReporter): this;
removeReporter(reporter: ConsolaReporter): ConsolaReporter[] | this;
setReporters(reporters: ConsolaReporter[]): this;
wrapAll(): void;
restoreAll(): void;
wrapConsole(): void;
restoreConsole(): void;
wrapStd(): void;
_wrapStream(stream: NodeJS.WriteStream | undefined, type: LogType): void;
restoreStd(): void;
_restoreStream(stream?: NodeJS.WriteStream): void;
pauseLogs(): void;
resumeLogs(): void;
mockTypes(mockFn?: ConsolaOptions['mockFn']): void;
_wrapLogFn(defaults: InputLogObject, isRaw?: boolean): (...args: any[]) => false | undefined;
_logFn(defaults: InputLogObject, args: any[], isRaw?: boolean): false | undefined;
_log(logObj: LogObject): void;
}
export interface LogFn {
(message: InputLogObject | any, ...args: any[]): void;
raw: (...args: any[]) => void;
}
export type ConsolaInstance = Consola & Record;
export declare function createConsola(options?: Partial): ConsolaInstance;