///
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 {};