evnty
Version:
Async-first, reactive event handling library for complex event flows in browser and Node.js
38 lines (37 loc) • 1.31 kB
TypeScript
import { Action, Fn, Emitter, MaybePromise, Promiseable } from './types.js';
/**
* @internal
*/
export declare class Disposer {
#private;
constructor(target: Disposable, abortSignal?: AbortSignal);
get disposed(): boolean;
[Symbol.dispose](): boolean;
handleEvent(): void;
}
/**
* @internal
*/
export interface Async<T, R> extends Emitter<T, R>, Disposable {
}
/**
* @internal
*/
export declare abstract class Async<T, R> implements Emitter<T, R>, Promiseable<T>, Promise<T>, AsyncIterator<T, void, void>, AsyncIterable<T> {
#private;
abstract [Symbol.toStringTag]: string;
abstract emit(value: T): R;
abstract receive(): Promise<T>;
dispose?(): void;
constructor(abortSignal?: AbortSignal);
get disposed(): boolean;
get sink(): Fn<[T], R>;
handleEvent(event: T): void;
catch<OK = never>(onrejected?: Fn<[unknown], MaybePromise<OK>> | null): Promise<T | OK>;
finally(onfinally?: Action | null): Promise<T>;
then<OK = T, ERR = never>(onfulfilled?: Fn<[T], MaybePromise<OK>> | null, onrejected?: Fn<[unknown], MaybePromise<ERR>> | null): Promise<OK | ERR>;
next(): Promise<IteratorResult<T, void>>;
return(): Promise<IteratorResult<T, void>>;
[Symbol.asyncIterator](): AsyncIterator<T, void, void>;
[Symbol.dispose](): void;
}