import EventEmitter from 'eventemitter3'; import { MetaData } from './MetaData'; import { LogLevel, Message } from './types'; export { LogLevel, type Message } from './types'; type EmitHttpOptions = { args?: any[]; transformMeta?: (meta: Record | undefined) => Record | undefined; }; export type InstrumentOptions = { extraArgs?: NonNullable; /** Identifies which resource is being instrumented */ key: string; /** Instrumentation does not use meta so this needs to be explicit */ environmentId?: string; /** Measurement in MS the operation took to complete */ time: number; appName?: string; userId?: string; primaryWalletId?: string; }; export declare class Logger { private name; private _level; static get troubleshootModeEnabled(): boolean; static set troubleshootModeEnabled(val: boolean); static globalMetaData: MetaData; metaData: MetaData; static events: EventEmitter<{ log: (level: LogLevel, message: unknown, ...args: any[]) => void; }, any>; constructor(name: string | string[], level?: LogLevel); static setEmitErrors(emit?: boolean): void; static setEnvironmentId(environmentId?: string): void; private getNameArray; createLogger(name: string | string[], level?: LogLevel): Logger; get logLevel(): string; setLogLevel(level: LogLevel | keyof typeof LogLevel): void; static setLogLevel(level: LogLevel | keyof typeof LogLevel): void; static resetLogLevel(): void; get level(): LogLevel; private formatMessage; private captureAndSend; emitHttpLogs(level: LogLevel, message: Message, { args, transformMeta }: EmitHttpOptions): void; /** * Emits an INFO type message to the backend for analysis and debugging */ instrument(message: Message, options?: InstrumentOptions & Record): void; log(level: LogLevel, message: Message, ...args: any[]): void; logVerboseTroubleshootingMessage(message: string | Error | unknown, ...args: any[]): void; debug(message: Message, ...args: any[]): void; info(message: Message, ...args: any[]): void; warn(message: Message, ...args: any[]): void; error(message: Message, ...args: any[]): void; }