export interface Hook { (action: A, context?: C): Promise; } export interface ConditionHook { (action: A, context?: C): boolean; } export interface BeforeActionCallback { (action: A, context?: C): Promise; } export interface AfterActionCallback { (action: A, context?: C): void; } export interface ListenToHook { (event: E, group: G, context: C): void; } export interface OutsideActionHook { (group: G, context: C): void; }