// Type definitions for rewire v2.5.1 // Project: https://github.com/jhnns/rewire // Definitions by: Borislav Zhivkov // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped declare namespace RewireInterfaces { interface Rewire { /** * Returns a rewired version of the module found at filename. Use rewire() exactly like require(). */ (filename: string): RewiredModule; } interface RewiredModule { /** * Takes all enumerable keys of obj as variable names and sets the values respectively. Returns a function which can be called to revert the change. */ __set__(obj: Object): Function; /** * Sets the internal variable name to the given value. Returns a function which can be called to revert the change. */ __set__(name: string, value: any): Function; /** * Returns the private variable with the given name. */ __get__(name: string): any; /** * Returns a function which - when being called - sets obj, executes the given callback and reverts obj. If callback returns a promise, obj is only reverted after * the promise has been resolved or rejected. For your convenience the returned function passes the received promise through. */ __with__(obj: Object): (callback: Function) => any; } } declare var rewire: RewireInterfaces.Rewire; declare module "rewire" { export = rewire; }