import type { ReadonlyAsyncEmitter } from './AsyncEmitter'; import type { ReadonlyEmitter } from './Emitter'; export type ReadonlySemiAsyncEmitter = ReadonlyAsyncEmitter & ReadonlyEmitter; export declare class SemiAsyncEmitter implements ReadonlyAsyncEmitter, ReadonlyEmitter { #private; constructor(name: string, syncEvents: Iterable); on(type: K | '*', listener: (event: SyncMap[K]) => unknown, order?: number): this; on(type: K | '*', listener: (event: AsyncMap[K]) => unknown, order?: number): this; once(type: K | '*', listener: (event: SyncMap[K]) => unknown, order?: number): this; once(type: K | '*', listener: (event: AsyncMap[K]) => unknown, order?: number): this; off(type: K | '*', listener: (event: SyncMap[K]) => unknown): this; off(type: K | '*', listener: (event: AsyncMap[K]) => unknown): this; emit(type: K, event: SyncMap[K]): void; emit(type: K, event: AsyncMap[K]): Promise; }