export interface IEvent { raise: (...data: T) => void; subscribe: (callback: (...data: T) => void) => () => boolean; } export interface IOrderedEvent { raise: (...data: T) => void; subscribe: (callBack: (...data: T) => void, order?: number) => () => boolean; } export interface IBlockingOrderedEvent { raise: (...data: T) => void; subscribe: (callBack: (...data: T) => boolean, order?: number) => () => boolean; } type OrderedEventOptions = { order: 'asc' | 'desc'; reverseGroups: boolean; }; export declare const useEvent: (dir?: 1 | -1) => IEvent; export declare const useOrderedEvent: (options?: OrderedEventOptions) => IOrderedEvent; export declare const useBlockingOrderedEvent: (options?: OrderedEventOptions) => IBlockingOrderedEvent; export {};