import { type IStream } from '../stream/index.js'; import type { I$Slottable } from '../ui/types.js'; type EventMapFor = T extends Window ? WindowEventMap : T extends Document ? DocumentEventMap : T extends HTMLElement ? HTMLElementEventMap : T extends SVGElement ? SVGElementEventMap : T extends IDBOpenDBRequest ? IDBOpenDBRequestEventMap : T extends EventSource ? EventSourceEventMap : T extends WebSocket ? WebSocketEventMap : T extends XMLHttpRequest ? XMLHttpRequestEventMap : T extends Worker ? WorkerEventMap : T extends FileReader ? FileReaderEventMap : T extends AbortSignal ? AbortSignalEventMap : T extends Animation ? AnimationEventMap : T extends BroadcastChannel ? BroadcastChannelEventMap : T extends MessagePort ? MessagePortEventMap : GlobalEventHandlersEventMap; export declare function fromEventTarget & string>(element: T, eventType: K, options?: boolean | AddEventListenerOptions): IStream[K]>; /** * Descriptor form for `nodeEvent` when the caller needs extra options. * Accepts any slottable because the renderer-agnostic `INode` carries an * element descriptor, not a Node; `nodeEvent` walks to the real DOM node * at runtime via the `native` descriptor field or the materialized * element that the renderer writes back during mount. */ type INodeEventDescriptor = { $node: I$Slottable; options?: boolean | AddEventListenerOptions; }; export interface INodeEventCurry { (eventType: K, descriptor: I$Slottable | INodeEventDescriptor): IStream; (eventType: K): (descriptor: I$Slottable | INodeEventDescriptor) => IStream; } export declare const nodeEvent: INodeEventCurry; export {};