export declare enum LogLevel { DEBUG = "debug", INFO = "info", WARN = "warn", ERROR = "error", FATAL = "fatal" } export interface LogEntry { level: LogLevel; message: string; meta?: Record; timestamp: string; context?: Record; } export interface Transport { name: string; log(entry: LogEntry): void | Promise; } export interface SanitizationConfig { redactKeys?: string[]; maskCharacter?: string; } export interface LoggerConfig { level?: LogLevel; transports?: Transport[]; sanitization?: SanitizationConfig; context?: Record; overrideConsole?: boolean | OverrideConfig; dashboard?: DashboardOptions; } export interface DashboardRequest { method?: string; path?: string; url?: string; headers?: Record; body?: any; query?: Record; ip?: string; [key: string]: any; } export interface DashboardResponse { status(code: number): DashboardResponse; json(obj: any): void; send(data: any): void; setHeader(name: string, value: string | string[]): void; writeHead(statusCode: number, headers?: Record): void; write(chunk: any): boolean; end(chunk?: any): void; [key: string]: any; } export type DashboardNext = (error?: any) => void; export type DashboardMiddleware = (req: DashboardRequest, res: DashboardResponse, next?: DashboardNext) => void; export interface DashboardOptions { enabled?: boolean; path?: string; logFolder?: string; authenticate?: (req: DashboardRequest) => Promise | boolean; users?: DashboardUser[]; maxLogs?: number; title?: string; showMetrics?: boolean; sessionTimeout?: number; realtime?: boolean; } export interface DashboardUser { username: string; password: string; role?: 'admin' | 'viewer'; } export type LogMethod = (message: string, meta?: Record) => void; export interface Logger { debug: LogMethod; info: LogMethod; warn: LogMethod; error: LogMethod; fatal: LogMethod; runInContext(context: Record, fn: () => T): T; overrideConsole(): void; restoreConsole(): void; isConsoleOverridden(): boolean; dashboard?: { middleware(): DashboardMiddleware; close(): void; }; } export interface OverrideConfig { preserveOriginal?: boolean; methods?: ('log' | 'info' | 'warn' | 'error' | 'debug')[]; } //# sourceMappingURL=index.d.ts.map