import { Configuration, Context, ContextValue, ErrorObservable, InternalMonitoring } from '@datadog/browser-core'; import { LoggerSession } from './loggerSession'; export declare enum StatusType { debug = "debug", info = "info", warn = "warn", error = "error" } export declare const STATUS_PRIORITIES: { [key in StatusType]: number; }; export declare const STATUSES: string[]; export interface LogsMessage { message: string; status: StatusType; [key: string]: ContextValue; } export interface LoggerConfiguration { level?: StatusType; handler?: HandlerType; context?: Context; } export declare enum HandlerType { http = "http", console = "console", silent = "silent" } export declare function startLogger(errorObservable: ErrorObservable, configuration: Configuration, session: LoggerSession, internalMonitoring: InternalMonitoring): Partial<{ logger: { debug(message: string, context?: Context | undefined): void; error(message: string, context?: Context | undefined): void; info(message: string, context?: Context | undefined): void; log(message: string, context?: Context | undefined, status?: "error" | "debug" | "info" | "warn" | undefined): void; warn(message: string, context?: Context | undefined): void; setContext(context: Context): void; addContext(key: string, value: ContextValue): void; removeContext(key: string): void; setHandler(handler: HandlerType): void; setLevel(level: StatusType): void; }; init(userConfiguration: import("./logs.entry").LogsUserConfiguration): void; addLoggerGlobalContext(key: string, value: ContextValue): void; setLoggerGlobalContext(context: Context): void; createLogger(name: string, conf?: LoggerConfiguration | undefined): Logger; getLogger(name: string): Logger | undefined; }>; export declare class Logger { private session; private handlers; private level; private loggerContext; private handler; constructor(session: LoggerSession, handlers: { [key in HandlerType]: (message: LogsMessage) => void; }, handler?: HandlerType, level?: StatusType, loggerContext?: Context); log(message: string, messageContext?: {}, status?: StatusType): void; debug(message: string, messageContext?: {}): void; info(message: string, messageContext?: {}): void; warn(message: string, messageContext?: {}): void; error(message: string, messageContext?: {}): void; setContext(context: Context): void; addContext(key: string, value: ContextValue): void; removeContext(key: string): void; setHandler(handler: HandlerType): void; setLevel(level: StatusType): void; }