import { Observable } from '../Observable'; export interface NodeStyleEventEmitter { addListener(eventName: string | symbol, handler: NodeEventHandler): this; removeListener(eventName: string | symbol, handler: NodeEventHandler): this; } export declare type NodeEventHandler = (...args: any[]) => void; export interface NodeCompatibleEventEmitter { addListener(eventName: string, handler: NodeEventHandler): void | {}; removeListener(eventName: string, handler: NodeEventHandler): void | {}; } export interface JQueryStyleEventEmitter { on(eventName: string, handler: (this: TContext, t: T, ...args: any[]) => any): void; off(eventName: string, handler: (this: TContext, t: T, ...args: any[]) => any): void; } export interface EventListenerObject { handleEvent(evt: E): void; } export interface HasEventTargetAddRemove { addEventListener(type: string, listener: ((evt: E) => void) | EventListenerObject | null, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: string, listener: ((evt: E) => void) | EventListenerObject | null, options?: EventListenerOptions | boolean): void; } export interface EventListenerOptions { capture?: boolean; passive?: boolean; once?: boolean; } export interface AddEventListenerOptions extends EventListenerOptions { once?: boolean; passive?: boolean; } export declare function fromEvent(target: HasEventTargetAddRemove | ArrayLike>, eventName: string): Observable; export declare function fromEvent(target: HasEventTargetAddRemove | ArrayLike>, eventName: string, resultSelector: (event: T) => R): Observable; export declare function fromEvent(target: HasEventTargetAddRemove | ArrayLike>, eventName: string, options: EventListenerOptions): Observable; export declare function fromEvent(target: HasEventTargetAddRemove | ArrayLike>, eventName: string, options: EventListenerOptions, resultSelector: (event: T) => R): Observable; export declare function fromEvent(target: NodeStyleEventEmitter | ArrayLike, eventName: string): Observable; /** @deprecated Do not specify explicit type parameters. Signatures with type parameters that cannot be inferred will be removed in v8. */ export declare function fromEvent(target: NodeStyleEventEmitter | ArrayLike, eventName: string): Observable; export declare function fromEvent(target: NodeStyleEventEmitter | ArrayLike, eventName: string, resultSelector: (...args: any[]) => R): Observable; export declare function fromEvent(target: NodeCompatibleEventEmitter | ArrayLike, eventName: string): Observable; /** @deprecated Do not specify explicit type parameters. Signatures with type parameters that cannot be inferred will be removed in v8. */ export declare function fromEvent(target: NodeCompatibleEventEmitter | ArrayLike, eventName: string): Observable; export declare function fromEvent(target: NodeCompatibleEventEmitter | ArrayLike, eventName: string, resultSelector: (...args: any[]) => R): Observable; export declare function fromEvent(target: JQueryStyleEventEmitter | ArrayLike>, eventName: string): Observable; export declare function fromEvent(target: JQueryStyleEventEmitter | ArrayLike>, eventName: string, resultSelector: (value: T, ...args: any[]) => R): Observable; //# sourceMappingURL=fromEvent.d.ts.map