export declare const LOG_LEVELS: readonly ["DEBUG", "INFO", "WARN", "ERROR"]; export declare type Levels = typeof LOG_LEVELS[number]; export declare type Log = { dateTime: string; appName: string; appVersion: string; message: string; component: string; level: Levels; extra: any; }; export interface ImLogger { info(component: string, message: string, extra?: any): void; debug(component: string, message: string, extra?: any): void; warn(component: string, message: string, extra?: any): void; error(component: string, error: Error, extra?: any): void; } export declare const ENCODER_TYPES: readonly ["json", "human"]; export declare type Encoder = typeof ENCODER_TYPES[number]; export declare const SINK_TYPES: readonly ["console", "file"]; export declare type SinkType = typeof SINK_TYPES[number]; export declare type SinkConfig = { type: SinkType; encoder: Encoder; }; export declare type ConsoleSinkConfig = SinkConfig & { type: 'console'; }; export declare type FileSinkConfig = SinkConfig & { type: 'file'; filename: string; }; export declare type Handler = ConsoleSinkConfig | FileSinkConfig; export declare type ImLoggerConfig = { appName: string; appVersion: string; level: Levels; componentFilter: string[]; handlers: Handler[]; };