| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 | // Type definitions for winston 3.0// Project: https://github.com/winstonjs/winston/// <reference types="node" />import * as stream from "stream";import * as logform from 'logform';import * as Transport from 'winston-transport';import * as Config from './lib/winston/config/index';import * as Transports from './lib/winston/transports/index';declare namespace winston {  // Hoisted namespaces from other modules  export import format = logform.format;  export import config = Config;  export import transports = Transports;  interface ExceptionHandler {    logger: Logger;    handlers: Map<any, any>;    catcher: Function | boolean;    handle(...transports: Transport[]): void;    unhandle(...transports: Transport[]): void;    getAllInfo(err: string | Error): object;    getProcessInfo(): object;    getOsInfo(): object;    getTrace(err: Error): object;    new(logger: Logger): ExceptionHandler;  }  interface QueryOptions {    rows?: number;    limit?: number;    start?: number;    from?: Date;    until?: Date;    order?: "asc" | "desc";    fields: any;  }  interface Profiler {    logger: Logger;    start: Date;    done(info?: any): boolean;  }  type LogCallback = (error?: any, level?: string, message?: string, meta?: any) => void;  interface LogEntry {    level: string;    message: string;    [optionName: string]: any;  }  interface LogMethod {    (level: string, message: string, callback: LogCallback): Logger;    (level: string, message: string, meta: any, callback: LogCallback): Logger;    (level: string, message: string, ...meta: any[]): Logger;    (entry: LogEntry): Logger;  }  interface LeveledLogMethod {    (message: string, callback: LogCallback): Logger;    (message: string, meta: any, callback: LogCallback): Logger;    (message: string, ...meta: any[]): Logger;    (infoObject: object): Logger;  }  interface LoggerOptions {    levels?: Config.AbstractConfigSetLevels;    silent?: boolean;    format?: logform.Format;    level?: string;    exitOnError?: Function | boolean;    transports?: Transport[] | Transport;    exceptionHandlers?: any;  }  interface Logger extends stream.Transform {    silent: boolean;    format: logform.Format;    levels: Config.AbstractConfigSetLevels;    level: string;    transports: Transport[];    exceptions: ExceptionHandler;    profilers: object;    exitOnError: Function | boolean;    log: LogMethod;    add(transport: Transport): Logger;    remove(transport: Transport): Logger;    clear(): Logger;    close(): Logger;    // for cli and npm levels    error: LeveledLogMethod;    warn: LeveledLogMethod;    help: LeveledLogMethod;    data: LeveledLogMethod;    info: LeveledLogMethod;    debug: LeveledLogMethod;    prompt: LeveledLogMethod;    http: LeveledLogMethod;    verbose: LeveledLogMethod;    input: LeveledLogMethod;    silly: LeveledLogMethod;    // for syslog levels only    emerg: LeveledLogMethod;    alert: LeveledLogMethod;    crit: LeveledLogMethod;    warning: LeveledLogMethod;    notice: LeveledLogMethod;    query(options?: QueryOptions, callback?: (err: Error, results: any) => void): any;    stream(options?: any): NodeJS.ReadableStream;    startTimer(): Profiler;    profile(id: string | number): Logger;    configure(options: LoggerOptions): void;    new(options?: LoggerOptions): Logger;  }  interface Container {    loggers: Map<string, Logger>;    options: LoggerOptions;    add(id: string, options?: LoggerOptions): Logger;    get(id: string, options?: LoggerOptions): Logger;    has(id: string): boolean;    close(id?: string): void;    new(options?: LoggerOptions): Container;  }  let version: string;  let ExceptionHandler: ExceptionHandler;  let Container: Container;  let loggers: Container;  let addColors: (target: Config.AbstractConfigSetColors) => any;  let createLogger: (options?: LoggerOptions) => Logger;  // Pass-through npm level methods routed to the default logger.  let error: LeveledLogMethod;  let warn: LeveledLogMethod;  let info: LeveledLogMethod;  let http: LeveledLogMethod;  let verbose: LeveledLogMethod;  let debug: LeveledLogMethod;  let silly: LeveledLogMethod;  // Other pass-through methods routed to the default logger.  let log: LogMethod;  let query: (options?: QueryOptions, callback?: (err: Error, results: any) => void) => any;  let stream: (options?: any) => NodeJS.ReadableStream;  let add: (transport: Transport) => Logger;  let remove: (transport: Transport) => Logger;  let clear: () => Logger;  let startTimer: () => Profiler;  let profile: (id: string | number) => Logger;  let configure: (options: LoggerOptions) => void;  let level: string;  let exceptions: ExceptionHandler;  let exitOnError: Function | boolean;  // let default: object;}export = winston;
 |