///
type Handler = (context: any) => any;
type AsyncHook = {
handlers: Handler[];
register(handler: Handler): AsyncHook;
delete(handler: Handler): AsyncHook;
call(): Promise;
};
type SyncHook = {
get handlers(): Handler[];
register(handler: Handler): SyncHook;
delete(handler: Handler): SyncHook;
call(): void;
};
export type Hook = AsyncHook | SyncHook;
type HookExtendFn = (hook: Hook) => Hook;
declare const hooksRegistry: () => {
/**
* Returns this list of registered hooks uids
*/
keys(): string[];
/**
* Returns the instance of a hook.
*/
get(uid: string): Hook;
/**
* Returns a map with all the hooks in a namespace
*/
getAll(namespace: string): import("lodash").Dictionary;
/**
* Registers a hook
*/
set(uid: string, hook: Hook): any;
/**
* Registers a map of hooks for a specific namespace
*/
add(namespace: string, hooks: Record): any;
/**
* Wraps a hook to extend it
*/
extend(uid: string, extendFn: HookExtendFn): any;
};
export default hooksRegistry;
//# sourceMappingURL=hooks.d.ts.map