declare class Hook { _call: (...args: any[]) => any; call: (...args: any[]) => any; _callAsync: (...args: any[]) => any; callAsync: (...args: any[]) => any; _promise: (...args: any[]) => Promise; promise: (...args: any[]) => Promise; private _args; private name; private taps; private once; constructor(args: string[], name?: string); afterInvoke(): void; compile(options: HookCompileOptions): void; isUsed(): boolean; withOptions(options: UserTapOptions): { name: string; tap: (opt: UserTapOptions, fn: () => any) => void; tapAsync: (opt: UserTapOptions, fn: () => any) => void; tapPromise: (opt: UserTapOptions, fn: () => any) => void; isUsed: () => boolean; withOptions: (opt: UserTapOptions) => any; }; _createCall(type: Types): void; _resetCompilation(): void; _insert(item: HooksTapsItem): void; _tap(type: Types, options: UserTapOptions, fn: (...args: any[]) => any): void; tap(options: UserTapOptions, fn: (...args: any[]) => any): void; tapAsync(options: UserTapOptions, fn: (...args: any[]) => any): void; tapPromise(options: UserTapOptions, fn: (...args: any[]) => any): void; _isRegistered(type: Types, fn: (...args: []) => any): boolean; _deleteTapHook(type: Types, fn: (...args: []) => any): void; _replaceTapHook(type: Types, oldFn: (...args: any[]) => any, newFn: (...args: []) => any): boolean; _tapHookIndexOf(type: Types, fn: (...args: []) => any): number; forbiddenCall(): void; forbiddenCallAsync(): void; forbiddenPromise(): void; } export default Hook;