export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent'; export declare class Logger { private static instance; private prefix; private debugMode; private logLevel; constructor(prefix?: string); static getInstance(prefix?: string): Logger; setDebugMode(enabled: boolean): void; setLogLevel(level: LogLevel): void; getLogLevel(): LogLevel; debug(message: string, ...args: unknown[]): void; info(message: string, ...args: unknown[]): void; warn(message: string, ...args: unknown[]): void; error(message: string, ...args: unknown[]): void; /** * Returns a copy of an object with the values of sensitive keys (apiKey, * writeKey, accessToken, token, secret, dsn, password, auth, credential, …) * replaced by '[REDACTED]'. This is applied automatically to every argument * of debug/info/warn/error (see the sink methods above), so provider config * — tokens, DSNs, write keys — never reaches the console even when a consumer * raises the log level or enables debug mode. * * Primitives, arrays, and Error instances are returned unchanged (Errors keep * their message/stack for logging); recursion is capped to avoid runaway * traversal of deep or circular objects. */ static redact(value: T, depth?: number): T; private shouldLog; }