import type { OneOrMany, EvType, EvListener, EventOptions } from './types.ts'; /** * Attach an event listener to one or more elements for one or more events. * Supports delegation, capture, signal-based removal, and one-shot listeners. * * @example * on(button, 'click', handler); * on([el1, el2], ['mouseenter', 'focus'], handler); * on(parent, 'click', handler, { delegate: '.item' }); */ export declare function on(els: OneOrMany, events: EvType | EvType[], cb: EvListener, opts?: EventOptions): void; /** * Attach a one-time event listener. The handler fires at most once per element/event. * * @example * once(button, 'click', handler); */ export declare function once(els: OneOrMany, events: EvType | EvType[], cb: EvListener, opts?: EventOptions): void; /** * Remove an event listener from one or more elements. * Does not work with delegated listeners — use AbortController signal instead. * * @example * off(button, 'click', handler); * off([el1, el2], 'click', handler); */ export declare function off(els: OneOrMany, events: EvType | EvType[], cb: EventListener): void; /** * Dispatch a CustomEvent on one or more elements. * The event bubbles by default so parent listeners can catch it. * * @example * emit(el, 'widget:open', { chatId: 123 }); * emit([el1, el2], 'ping'); */ export declare function emit(els: OneOrMany, event: string, detail?: unknown): void;