export type HookToken = { cancel(): void; }; export type HookCallback = () => void; export declare class Hooks { private hooks; private onceHooks; /** * Register a hook that can be triggered multiple times * @param name Hook name * @param callback Callback function * @returns Token to cancel the hook */ hook(name: string, callback: HookCallback): HookToken; /** * Register a hook that can only be triggered once * @param name Hook name * @param callback Callback function * @returns Token to cancel the hook */ onceHook(name: string, callback: HookCallback): HookToken; /** * Trigger all hooks with the given name * @param name Hook name * @param args Arguments to pass to the callbacks */ trigger(name: string): void; /** * Check if a hook exists * @param name Hook name * @returns Whether the hook exists */ hasHook(name: string): boolean; /** * Clear all hooks with the given name * @param name Hook name */ clearHooks(name: string): void; /** * Clear all hooks */ clearAllHooks(): void; /** * unhook a hook * @param name Hook name * @param callback Callback function */ unhook(name: string, callback: HookCallback): void; }