import { Emitter } from './emitter'; import { Observable } from './observable'; /** * An event emitter class used to emit events and register listeners. */ export declare class Event = []> extends Emitter { hasListeners: Observable; /** * Emit an event. * * @param a - The argument to pass to handler functions. */ emit(...args: Args): void; /** * Clears all listeners from the event. If there are no listeners, it sets `this.hasListeners.value` to `true`. */ clearListeners(): void; /** * Adds a listener to the event. After adding the listener, it sets `this.hasListeners.value` to `true`. * * @param f - The listener function to add. * @param priority - The priority of the listener. Higher priority listeners are called first. */ addListener(f: (...args: Args) => void, priority?: number): void; /** * Removes a listener from the event. If there are no more listeners after the removal, it sets `this.hasListeners.value` to `false`. * * @param f - The listener function to remove. */ removeListener(f: (...args: Args) => void): void; }