import { type TermElement } from '../dom/TermElement'; export declare class Event> { attributes: Attributes; bubbles: boolean; cancelable: boolean; immediatlyCanceled: boolean; propagationStopped: boolean; defaultPrevented: boolean; action: () => void; target: Target; currentTarget: TermElement; constructor(attributes: Attributes, { bubbles, cancelable }?: { bubbles?: boolean | undefined; cancelable?: boolean | undefined; }); reset(): void; stopImmediatePropagation(): void; stopPropagation(): void; preventDefault(): void; setDefaultAction(callback: () => void): void; } export type EventNames = Extract; export type EventOf = T extends EventSlot ? Event : never; export declare class EventSlot> { private node; private name; private capture; private bubble; constructor(node: TNode, name: TName, attrs: TAttributes); addEventListener(callback: (e: Event) => void, { capture }?: { capture?: boolean | undefined; }): void; removeEventListener(callback: (e: Event) => void, { capture }?: { capture?: boolean | undefined; }): void; dispatchEvent(attributes: TAttributes, { action, bubbles, parentNode }?: { action?: () => void; bubbles?: boolean; parentNode?: TermElement; }): void; }