import { ObjectBase } from "../../bases/object-base"; import type * as interfaces from "../../interfaces"; export type LoggerOutputLevel = "log" | "info" | "debug" | "warn" | "error" | "admin"; export interface LoggerOutputFormat { format: string; styles: string[]; } export interface LoggerOutputMetadata { id?: string; level?: LoggerOutputLevel; namespace?: string; callerName?: string; message?: string; messagePrefix?: string; payload?: unknown; timestamp?: number; formatted?: LoggerOutputFormat; } export interface LoggerOutputEvent { logger: LoggerBrowserInfra; namespace: string; args: any[]; metadata?: LoggerOutputMetadata; } export type LoggerOutputSubscriber = (event: LoggerOutputEvent) => void; export declare abstract class LoggerBrowserInfra extends ObjectBase { static mappers: Function[]; static mapperDepth: number; static colorsOwners: { [key: string]: string; }; static colorsUsed: string[]; private static outputSubscribers; defaultStyle: string[]; protected readonly owner: ObjectBase | typeof ObjectBase | string; protected args: { repeatedly: boolean; }; protected color: string; private outputHandler; private pendingOutputMetadata?; static getName(): string; /** * Reset logger globals. */ static reset(): void; static attachOutputSubscriber(subscriber: LoggerOutputSubscriber): () => void; /** * Creates a custom mapper for a specific class type. * * The mapper is a callback function that can modify or enhance objects mapping. */ static createObjectMapper(callback: Function): void; /** * Gets mapped version of the object by using custom created object mapper. */ static useObjectMapper(obj: object, shouldHandleChildren?: boolean): any[] | { [key: string]: any; }; constructor(owner: ObjectBase | typeof ObjectBase | string, args?: {}); protected getOwnerName(): string; protected initialize(): void; output(...args: any): void; protected setOutputHandler(outputHandler: Function): void; protected runWithOutputMetadata(metadata: LoggerOutputMetadata | undefined, callback: () => T): T; protected printFunctionNotify(prefix: string, caller: interfaces.TCaller, output: any): void; protected printObjectEfficient(prefix: string, caller: interfaces.TCaller, params: string | object): void; protected printInLineElement(prefix: string, caller: interfaces.TCaller, key: string, value: any, notice?: string): void; protected printInLineFunction(prefix: string, caller: interfaces.TCaller, key: string, fn: string | Function): void; protected printInLineString(prefix: string, caller: interfaces.TCaller, string: string): void; protected printInNextLineObject(prefix: string, caller: interfaces.TCaller, key: string, obj: object): void; protected printMultiLineObject(prefix: string, caller: interfaces.TCaller, obj: { [key: string]: string | Function; }): void; private getRandomColor; protected getCallerName(caller: interfaces.TCaller): string; private getFunctionView; }