import { EventBus, Events, EventWaiter, EventName } from '@eggjs/eventbus-decorator'; import type { Arguments } from '@eggjs/eventbus-decorator'; import type { EggRuntimeContext } from '@eggjs/tegg-types'; export interface Event { name: EventName; args: Array; context?: EggRuntimeContext; } export interface CorkEvents { times: number; events: Array; } export declare class SingletonEventBus implements EventBus, EventWaiter { private readonly emitter; private readonly eventContextFactory; private readonly eventHandlerFactory; private readonly logger; private corkIdSequence; private readonly corkedEvents; /** * only use for ensure event will happen */ once(event: E, listener: Events[E]): this; await(event: E): Promise>; awaitFirst(...e: Array): Promise<{ event: EventName; args: Arguments; }>; emit(event: E, ...args: Arguments): boolean; generateCorkId(): string; cork(corkId: string): void; uncork(corkId: string): boolean; queueEvent(corkId: string, event: Event): void; emitWithContext(parentContext: EggRuntimeContext, event: E, args: Arguments): boolean; private doEmitWithContext; private doOnceEmit; private doEmit; }