ix
Version:
The Interactive Extensions for JavaScript
26 lines (25 loc) • 1.33 kB
TypeScript
import { AsyncIterableX } from './asynciterablex.js';
type CommonEventHandler = (...args: any[]) => void;
/** @ignore */
export interface OnOffEventEmitter {
on(event: string | symbol, listener: CommonEventHandler): this;
off(event: string | symbol, listener: CommonEventHandler): this;
}
/** @ignore */
export interface NodeEventEmitter {
addListener(event: string | symbol, listener: CommonEventHandler): this;
removeListener(event: string | symbol, listener: CommonEventHandler): this;
}
/** @ignore */
export type EventListenerOptions = {
capture?: boolean;
passive?: boolean;
once?: boolean;
} | boolean;
/** @ignore */
export type EventedTarget = EventTarget | OnOffEventEmitter | NodeEventEmitter;
export declare function fromEvent<TSource>(obj: EventedTarget, eventName: string): AsyncIterableX<TSource>;
export declare function fromEvent<TSource>(obj: EventedTarget, eventName: string, resultSelector: (...args: any[]) => TSource): AsyncIterableX<TSource>;
export declare function fromEvent<TSource>(obj: EventedTarget, eventName: string, options: EventListenerOptions): AsyncIterableX<TSource>;
export declare function fromEvent<TSource>(obj: EventedTarget, eventName: string, options: EventListenerOptions, resultSelector: (...args: any[]) => TSource): AsyncIterableX<TSource>;
export {};