import type { Emitter } from './emitter.ts'; /** * Base event adds ability to a class to act as an event. You can emit the * event by calling "Event.dispatch" method. */ export declare class BaseEvent { /** * Base event constructor * * @param _ - Any constructor arguments (unused) */ constructor(..._: any[]); /** * The emitter to use for dispatching events */ static emitter?: Emitter; /** * Specify the emitter instance to use for dispatching events * * @param emitter - The emitter instance to use */ static useEmitter(emitter: Emitter): void; /** * Dispatch the current class as an event. The method takes the arguments * accepted by the class constructor. * * @param args - Constructor arguments for the event instance * @throws RuntimeException if no emitter is configured */ static dispatch(this: T, ...args: ConstructorParameters): Promise; }