, KeyType extends number = number> = {
readonly [key in KeyType]: EventType;
};
export type DispatchingEvent = Event
, S extends Event
= Event
> = T & EventDispatchTable;
export declare const createDispatchingEvent: {
, S extends Event>>(underlyingEvent: T, extractKey: (...args: EventParameters) => number, ...createEvent: [...(Event extends S ? [(() => S)?] : [() => S])]): DispatchingEvent, T>;
};
export declare class DependentInitializingEvent extends InitializingEvent> {
constructor(underlyingEvent: Event, priority: EventListenerPriority, collector: (...args: T) => LuaMultiReturn<[false] | [true, ...R]>);
}
export declare class EventParametersCaptor {
private readonly event;
private invoked?;
private constructor();
getFirstParameters(): LuaMultiReturn<[] | T>;
getLastParameters(): LuaMultiReturn<[] | T>;
static create(event: Event): EventParametersCaptor;
}