import { Handle, EventObject } from './interfaces'; import Evented, { CustomEventTypes } from './Evented'; export interface EventCallback> { (event: O): void; } export interface EventEmitter { on(event: string, listener: EventCallback): EventEmitter; removeListener(event: string, listener: EventCallback): EventEmitter; } /** * Provides a normalized mechanism for dispatching events for event emitters, Evented objects, or DOM nodes. * @param target The target to emit the event from * @param event The event object to emit * @return Boolean indicating if preventDefault was called on the event object (only relevant for DOM events; * always false for other event emitters) */ export declare function emit = EventObject, K extends keyof M = keyof M>(target: Evented, event: M[K]): boolean; export declare function emit = EventObject>(target: Evented, event: O): boolean; export declare function emit = EventObject>(target: EventTarget | EventEmitter, event: O): boolean; /** * Provides a normalized mechanism for listening to events from event emitters, Evented objects, or DOM nodes. * @param target Target to listen for event on * @param type Event event type(s) to listen for; may a string or an array of strings * @param listener Callback to handle the event when it fires * @param capture Whether the listener should be registered in the capture phase (DOM events only) * @return A handle which will remove the listener when destroy is called */ export default function on = EventObject>(target: Evented, type: K | K[], listener: EventCallback): Handle; export default function on = EventObject>(target: Evented, type: T | T[], listener: EventCallback): Handle; export default function on(target: EventEmitter, type: string | string[], listener: EventCallback): Handle; export default function on(target: EventTarget, type: string | string[], listener: EventCallback, capture?: boolean): Handle; /** * Provides a mechanism for listening to the next occurrence of an event from event * emitters, Evented objects, or DOM nodes. * @param target Target to listen for event on * @param type Event event type(s) to listen for; may be a string or an array of strings * @param listener Callback to handle the event when it fires * @param capture Whether the listener should be registered in the capture phase (DOM events only) * @return A handle which will remove the listener when destroy is called */ export declare function once = EventObject>(target: Evented, type: K | K[], listener: EventCallback): Handle; export declare function once = EventObject>(target: Evented, type: T | T[], listener: EventCallback): Handle; export declare function once(target: EventTarget, type: string | string[], listener: EventCallback, capture?: boolean): Handle; export declare function once(target: EventEmitter, type: string | string[], listener: EventCallback): Handle; export interface PausableHandle extends Handle { pause(): void; resume(): void; } /** * Provides a mechanism for creating pausable listeners for events from event emitters, Evented objects, or DOM nodes. * @param target Target to listen for event on * @param type Event event type(s) to listen for; may a string or an array of strings * @param listener Callback to handle the event when it fires * @param capture Whether the listener should be registered in the capture phase (DOM events only) * @return A handle with additional pause and resume methods; the listener will never fire when paused */ export declare function pausable = EventObject>(target: Evented, type: K | K[], listener: EventCallback): PausableHandle; export declare function pausable = EventObject>(target: Evented, type: T | T[], listener: EventCallback): PausableHandle; export declare function pausable(target: EventTarget, type: string | string[], listener: EventCallback, capture?: boolean): PausableHandle; export declare function pausable(target: EventEmitter, type: string | string[], listener: EventCallback): PausableHandle;