import { type Observer, type Reference } from "@knyt/artisan"; import type { EventHandler } from "@knyt/weaver"; import type { BasicEvent } from "./BasicEvent.ts"; import type { Effect } from "./Effect.ts"; import type { InferEventFromName } from "./types.ts"; /** * A controller that manages an event listener on an element. * * @remarks * * This controller should be added before the host is connected. * * @example * * ```ts * import { createReference } from "@knyt/artisan"; * import { EventListenableObserver } from "@knyt/tasker"; * * new EventListenableObserver({ * eventName: "click", * listener(event) { * console.info("click event", event); * }, * target$: createReference(document.body), * }); * * @public */ export declare class EventListenableObserver implements Observer, Effect { #private; constructor({ eventName, listener, target$: listenable$, options: eventOptions, }: EventListenableObserver.Options); next(nextTarget: E | null): void; /** * Adds the event listener to the target element. */ setup(): void; /** * Removes the event listener from the target element. */ teardown(): void; dispose(): void; } export declare namespace EventListenableObserver { type Listener = EventHandler>; type Options = { eventName: K; listener: EventListenableObserver.Listener; target$: Reference.Readonly; options?: AddEventListenerOptions; }; } //# sourceMappingURL=EventListenableObserver.d.ts.map