/// import Event from "krevent"; export declare type BroadcastMapped> = { [key in keyof T]: (value: T[key]) => boolean | null; }; declare type EventList = { [key: string]: { key: string; value: any; }; }; declare type ListenerMappedBase = { [key in keyof T]: (cb: (ev: IEventData['data']) => void) => void; }; interface EventObject { type: T[KEY]['key']; data: IEventData['data']; } export interface AllListener { all(cb: (ev: EventObject) => void): void; } export declare type ListenerMapped = ListenerMappedBase & AllListener; export declare function createBroadcast(map: T): BroadcastMapped; export declare function createListener(map: T): ListenerMapped; export declare const sharedEvents: { initialize: Event<() => void>; shutdown: Event<() => void>; update: Event<() => void>; }; export {};