import makeError = require('make-error'); declare function makeErrorCause(value: string | Function): makeErrorCause.Constructor; declare function makeErrorCause(value: string | Function, _super: { new (...args: any[]): T; }): makeErrorCause.Constructor; declare namespace makeErrorCause { class BaseError extends makeError.BaseError { cause: Error; constructor(message: string, cause?: Error); toString(): string; } interface Constructor { new (message: string, cause?: Error): T; super_: any; prototype: T; } } export = makeErrorCause;