import StatefulPromise from "./stateful-promise"; import TaskQueue, { type TaskOptions, type TaskRunnerArgs } from "./task-queue"; interface TypedMap { clear(): void; delete(key: keyof T): boolean; get(key: TEvent): T[TEvent] | undefined; set(key: TEvent, value: T[TEvent]): this; keys(): IterableIterator; } /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-emitter/) */ export type TaskListener = (runnerArgs: TaskRunnerArgs, ...args: TArgs) => void | PromiseLike; /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-emitter/#once) */ export interface TaskListenerOptions extends TaskOptions { } /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-emitter/) */ export default class TaskEmitter> { protected readonly _queue: TaskQueue; protected readonly _listeners: TypedMap<{ [P in keyof TEventMap]: { original: TaskListener; dispatch: (args: TEventMap[P]) => StatefulPromise; }[]; }>; /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-emitter/#on) */ on(this: this, event: TEvent, listener: TaskListener): void; /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-emitter/#off) */ off(event: TEvent, listener?: TaskListener): void; /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-emitter/#once) */ once(event: TEvent, options?: TaskListenerOptions | undefined): StatefulPromise & { readonly cancel: () => StatefulPromise; }; /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-emitter/#emit) */ emit(event: TEvent, ...args: TEventMap[TEvent]): undefined | StatefulPromise[]; /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-emitter/#idle) */ idle(): StatefulPromise; /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-emitter/#abort) */ abort(reason?: unknown): void; } export {}; //# sourceMappingURL=task-emitter.d.ts.map