import { type MixinType } from './mixin.ts'; import type { ElementProps } from '../jsx.ts'; import type { MixinDescriptor } from './mixin.ts'; import type { EnsureEvent, EventMap } from '../event-listeners.ts'; type SignaledListener = (event: event, signal: AbortSignal) => void | Promise; type EventType = string & keyof EventMap; type ListenerFor> = SignaledListener[type], target>>; export type OnMixinDescriptor = { type: typeof onMixinType; args: [type: string, handler: SignaledListener, captureBoolean?: boolean]; }; declare const onMixinType: MixinType, captureBoolean?: boolean ], ElementProps>; export declare function isOnMixinDescriptor(descriptor: unknown): descriptor is OnMixinDescriptor; /** * Attaches a typed DOM event handler through the mixin system. * * @param type Event type to listen for. * @param handler Event handler. * @param captureBoolean Whether to listen during capture. * @returns A mixin descriptor for the target element. */ export declare function on = EventType>(type: type, handler: ListenerFor, captureBoolean?: boolean): MixinDescriptor, boolean?], ElementProps>; export {};