declare module "console" { import { InspectOptions } from 'util'; global { // This needs to be global to avoid TS2403 in case lib.dom.d.ts is present in the same build interface Console { Console: NodeJS.ConsoleConstructor; /** * A simple assertion test that verifies whether `value` is truthy. * If it is not, an `AssertionError` is thrown. * If provided, the error `message` is formatted using `util.format()` and used as the error message. */ assert(value: any, message?: string, ...optionalParams: any[]): void; /** * When `stdout` is a TTY, calling `console.clear()` will attempt to clear the TTY. * When `stdout` is not a TTY, this method does nothing. */ clear(): void; /** * Maintains an internal counter specific to `label` and outputs to `stdout` the number of times `console.count()` has been called with the given `label`. */ count(label?: string): void; /** * Resets the internal counter specific to `label`. */ countReset(label?: string): void; /** * The `console.debug()` function is an alias for {@link console.log()}. */ debug(message?: any, ...optionalParams: any[]): void; /** * Uses {@link util.inspect()} on `obj` and prints the resulting string to `stdout`. * This function bypasses any custom `inspect()` function defined on `obj`. */ dir(obj: any, options?: InspectOptions): void; /** * This method calls {@link console.log()} passing it the arguments received. Please note that this method does not produce any XML formatting */ dirxml(...data: any[]): void; /** * Prints to `stderr` with newline. */ error(message?: any, ...optionalParams: any[]): void; /** * Increases indentation of subsequent lines by two spaces. * If one or more `label`s are provided, those are printed first without the additional indentation. */ group(...label: any[]): void; /** * The `console.groupCollapsed()` function is an alias for {@link console.group()}. */ groupCollapsed(...label: any[]): void; /** * Decreases indentation of subsequent lines by two spaces. */ groupEnd(): void; /** * The {@link console.info()} function is an alias for {@link console.log()}. */ info(message?: any, ...optionalParams: any[]): void; /** * Prints to `stdout` with newline. */ log(message?: any, ...optionalParams: any[]): void; /** * This method does not display anything unless used in the inspector. * Prints to `stdout` the array `array` formatted as a table. */ table(tabularData: any, properties?: string[]): void; /** * Starts a timer that can be used to compute the duration of an operation. Timers are identified by a unique `label`. */ time(label?: string): void; /** * Stops a timer that was previously started by calling {@link console.time()} and prints the result to `stdout`. */ timeEnd(label?: string): void; /** * For a timer that was previously started by calling {@link console.time()}, prints the elapsed time and other `data` arguments to `stdout`. */ timeLog(label?: string, ...data: any[]): void; /** * Prints to `stderr` the string 'Trace :', followed by the {@link util.format()} formatted message and stack trace to the current position in the code. */ trace(message?: any, ...optionalParams: any[]): void; /** * The {@link console.warn()} function is an alias for {@link console.error()}. */ warn(message?: any, ...optionalParams: any[]): void; // --- Inspector mode only --- /** * This method does not display anything unless used in the inspector. * Starts a JavaScript CPU profile with an optional label. */ profile(label?: string): void; /** * This method does not display anything unless used in the inspector. * Stops the current JavaScript CPU profiling session if one has been started and prints the report to the Profiles panel of the inspector. */ profileEnd(label?: string): void; /** * This method does not display anything unless used in the inspector. * Adds an event with the label `label` to the Timeline panel of the inspector. */ timeStamp(label?: string): void; } var console: Console; namespace NodeJS { interface ConsoleConstructorOptions { stdout: WritableStream; stderr?: WritableStream; ignoreErrors?: boolean; colorMode?: boolean | 'auto'; inspectOptions?: InspectOptions; } interface ConsoleConstructor { prototype: Console; new(stdout: WritableStream, stderr?: WritableStream, ignoreErrors?: boolean): Console; new(options: ConsoleConstructorOptions): Console; } interface Global { console: typeof console; } } } export = console; }