/** * Create a new error constructor instance. */ declare function makeError( name: string ): makeError.Constructor; /** * Set the constructor prototype to `BaseError`. */ declare function makeError(super_: { new (...args: any[]): T; }): makeError.Constructor; /** * Create a specialized error instance. */ declare function makeError( name: string | Function, super_: K ): K & makeError.SpecializedConstructor; declare namespace makeError { /** * Use with ES2015+ inheritance. */ export class BaseError extends Error { message: string; name: string; stack: string; constructor(message?: string); } export interface Constructor { new (message?: string): T; super_: any; prototype: T; } export interface SpecializedConstructor { super_: any; prototype: T; } } export = makeError;