export interface ArgEditor { (this: any, args: any[]): any[]; } export interface RetEditor { (this: any, ret: any, args?: any[]): any[]; } export interface WrapFunction { (this: any, ...args: any[]): any; } export declare type ErrorHandler = (err: Error, args?: any[]) => void; export declare class MonkeyPatch { private original; private prependList; private appendList; private returnModify; private argumentsModify; private errorHandler; private detectedName; constructor(original: FnType & { __hasWrapped?: MonkeyPatch; }, returnModify?: RetEditor); catchError(fn: ErrorHandler): void; release(): void; prepend(fn: WrapFunction): void; append(fn: WrapFunction): void; argumentsValue(fn: ArgEditor): void; returnValue(fn: any): void; getFunction(): FnType; }