export declare abstract class Event { readonly data: TData; constructor(data: TData); } export type EventConstructor = new (...args: any[]) => TEvent; export type ListenerCallback = (event: TEvent) => void | Promise; export interface ListenerContract { handle(event: TEvent): void | Promise; } export declare abstract class Listener implements ListenerContract { abstract handle(event: TEvent): void | Promise; } export type ListenerConstructor = new (...args: any[]) => ListenerContract; export type ListenerHandler = ListenerConstructor | ListenerCallback; export interface ShouldQueue { readonly shouldQueue: true; } export type EventListenerRegistration = [ EventConstructor, ListenerHandler[] ]; export declare abstract class EventSubscriber { abstract subscribe(dispatcher: import('./event-dispatcher.js').EventDispatcher): void; } export type EventSubscriberConstructor = new (...args: any[]) => EventSubscriber; export interface EventsConfig { listen: EventListenerRegistration[]; subscribers?: EventSubscriberConstructor[]; queueConnection?: string; queue?: string; } //# sourceMappingURL=types.d.ts.map