///
import { AsyncLocalStorage } from 'async_hooks';
import { ILogger } from './ILogger';
import { LogFormatter } from './types/LogFormatter';
import { LogEntryMetadata } from './types/LogEntryMetadata';
import { Severity } from './types/Severity';
export declare class Logger implements ILogger {
/**
* Global log level
*/
protected static level: Severity;
/**
* Global default user labels
*/
protected static labels: Record;
/**
* Default context logger
*/
protected static appLogger: Logger;
/**
* Stores logger references in async storage
*/
protected static storage: AsyncLocalStorage;
/**
* A formatter function which takes a log entry and formats it to a string
*/
protected static formatter: LogFormatter;
/**
* Sets a global log level
*/
static setLevel(level: Severity): void;
/**
* Sets global default user labels
*/
static setLabels(labels: Record): void;
/**
* Returns global default user labels
*/
static getLabels(): Record;
/**
* Sets a global formatter function to replace the default JSON.stringify based formatter.
* This can be useful for developers running the application locally and presenting logs in
* a more developer-friendly form.
*/
static setFormatter(formatter?: LogFormatter): void;
/**
* Calls a function with a given logger
*/
static runWith any>(logger: Logger, cb: T): ReturnType;
/**
* Returns logger from async context
* @returns
*/
static getLogger(): Logger;
/**
* Logger unique identifier
*/
protected readonly name: string;
/**
* Logger default user labels
*/
protected labels: Record;
constructor(name?: string, labels?: Record);
log(severity: Severity, message: string, meta?: LogEntryMetadata): void;
default(message: string, meta?: LogEntryMetadata): void;
debug(message: string, meta?: LogEntryMetadata): void;
info(message: string, meta?: LogEntryMetadata): void;
notice(message: string, meta?: LogEntryMetadata): void;
warning(message: string, meta?: LogEntryMetadata): void;
error(message: string, meta?: LogEntryMetadata): void;
critical(message: string, meta?: LogEntryMetadata): void;
alert(message: string, meta?: LogEntryMetadata): void;
emergency(message: string, meta?: LogEntryMetadata): void;
static log(severity: Severity, message: string, meta?: LogEntryMetadata): void;
static default(message: string, meta?: LogEntryMetadata): void;
static debug(message: string, meta?: LogEntryMetadata): void;
static info(message: string, meta?: LogEntryMetadata): void;
static notice(message: string, meta?: LogEntryMetadata): void;
static warning(message: string, meta?: LogEntryMetadata): void;
static error(message: string, meta?: LogEntryMetadata): void;
static critical(message: string, meta?: LogEntryMetadata): void;
static alert(message: string, meta?: LogEntryMetadata): void;
static emergency(message: string, meta?: LogEntryMetadata): void;
static getName(): string;
setLabels(labels: Record): void;
getLabels(): Record;
getName(): string;
}
//# sourceMappingURL=Logger.d.ts.map