type Hook = { callback: Function; priority: number; }; export declare enum HookPosition { BEFORE = "before", AFTER = "after" } type HookStorage = Map; export declare function hookAfter(funcName: string, callback: (this: TContext, result: TResult, ...args: TArgs) => void | Promise, priority?: number): void; export declare function hookBefore(funcName: string, callback: (this: TContext, ...args: TArgs) => void | Promise, priority?: number): void; export declare function hookable(originalFunction: T, context?: any): T; export declare function getHooks(): { beforeHooks: HookStorage; afterHooks: HookStorage; }; export declare function clearHooks(): void; export declare function lockHooks(): void; export {};