libmodpm
Version:
Modrinth package manager library
65 lines (64 loc) • 2.21 kB
TypeScript
import { TypedListener } from "./TypedListener.js";
/**
* Represents an event target with statically-known event types.
*
* @template E Event types map.
*/
export declare class TypedEventTarget<E extends Record<string, Event>> {
/**
* Underlying event target.
*/
private readonly target;
/**
* Sets up an event listener.
*
* @param type Case-sensitive event type.
* @param listener Event listener.
* @param options Listener options.
*/
addEventListener<K extends Extract<keyof E, string>>(type: K, listener: TypedListener<E[K]>, options?: AddEventListenerOptions): void;
/**
* Sets up an event listener.
*
* @param type Case-sensitive event type.
* @param listener Event listener.
* @param options Listener options.
*/
on<K extends Extract<keyof E, string>>(type: K, listener: TypedListener<E[K]>, options?: AddEventListenerOptions): void;
/**
* Sets up an event listener that will be removed after the first invocation.
*
* @param type Case-sensitive event type.
* @param listener Event listener.
* @param options Listener options.
*/
once<K extends Extract<keyof E, string>>(type: K, listener: TypedListener<E[K]>, options?: AddEventListenerOptions): void;
/**
* Removes an event listener.
*
* @param type Case-sensitive event type.
* @param listener Event listener.
* @param options Listener options.
*/
removeEventListener<K extends Extract<keyof E, string>>(type: K, listener: TypedListener<E[K]>, options?: boolean | EventListenerOptions): void;
/**
* Removes an event listener.
*
* @param type Case-sensitive event type.
* @param listener Event listener.
* @param options Listener options.
*/
off<K extends Extract<keyof E, string>>(type: K, listener: TypedListener<E[K]>, options?: boolean | EventListenerOptions): void;
/**
* Dispatches an event.
*
* @param event Event to dispatch.
*/
dispatchEvent(event: E[keyof E]): boolean;
/**
* Dispatches an event.
*
* @param event Event to dispatch.
*/
emit(event: E[keyof E]): boolean;
}