type LogLevel = 'silent' | 'error' | 'warn' | 'info' | 'debug' | 'trace' | 'silly'; interface LogEvent { level: LogLevel; scope: string; ts: number; args: any[]; code?: string; data?: any; } type LogTransport = (e: LogEvent) => void; interface Logger { level(): LogLevel; setLevel(level: LogLevel): void; setTransport(t?: LogTransport): void; error(...a: any[]): void; warn(...a: any[]): void; info(...a: any[]): void; debug(...a: any[]): void; trace(...a: any[]): void; silly(...a: any[]): void; scope(child: string): Logger; code(level: LogLevel, code: string, msg: string, data?: any): void; } interface CreateLoggerOptions { level?: LogLevel; transport?: LogTransport; scope?: string; } declare function createLogger(opts?: CreateLoggerOptions): Logger; export { type CreateLoggerOptions as C, type LogLevel as L, type LogTransport as a, type Logger as b, type LogEvent as c, createLogger as d };