import { LoggerConfig } from '../types'; import { SlackService } from './Slack'; import { PerformanceService } from './performance'; /** * Base logger class. Logging methods (`info`, `error`, `warn`, `log`, `debug`, `test`) are stubs * that must be overridden by the consuming app — calling them before providing an implementation * throws. Use {@link createLogger} to produce a concrete instance, then assign it to `logger`. * * `initialize` must be called once before `patchConsole` or any Slack/perf functionality works. */ export declare class Logger { static initialized: boolean; private config; slack: SlackService; perf: PerformanceService; private isIgnored; /** * Monkey-patches `console.log`, `console.warn`, and `console.error` so that any message * matching an entry in `config.Logger.ignoreLogs` is silently dropped. * * Call this after `initialize`. Patching before initialization has no effect because * `isIgnored` returns `false` until the config is loaded. */ patchConsole(): void; /** * Bootstraps the logger with app-wide config. Safe to call multiple times — subsequent calls * are no-ops. Also instantiates `slack` and `perf` sub-services, so they are only available * after this method returns. */ initialize(config: T): void; /** * Stub — must be overridden. Intended for temporary test logs that should never reach * production; implementations typically no-op in non-dev environments. */ test(...args: unknown[]): void; /** Stub — must be overridden. */ info(...args: unknown[]): void; /** Stub — must be overridden. */ error(...args: unknown[]): void; /** Stub — must be overridden. */ warn(...args: unknown[]): void; /** Stub — must be overridden. */ log(...args: unknown[]): void; /** Stub — must be overridden. */ debug(...args: unknown[]): void; } /** * Shared `Logger` instance. Logging methods throw until the consuming app replaces them via * {@link createLogger} and calls {@link Logger.initialize}. */ export declare const logger: Logger; //# sourceMappingURL=Logger.d.ts.map