/** * DOM typings for `hb-card-video`. Attribute values are strings (objects/arrays as JSON strings). * Generated — do not edit by hand. */ import type { Component, Events } from "./webcomponent.type"; /** * Host properties already on `HTMLElement` (no `svelte/elements` here — DOM typings stay * usable without Svelte). Custom `Component` keys that collide stay on the native typing. */ type DomKeys = keyof HTMLElement; type HbComponentAttrs = { [K in keyof Component as K extends DomKeys ? never : K]?: string; }; type HbHtmlElementWithoutListeners = Omit< HTMLElement, "addEventListener" | "removeEventListener" >; /** * Re-declare listener methods so custom `Events` overloads are compatible with * `HTMLElement` (subclass methods must remain assignable to the base signatures). * * Like `svelte-elements.d.ts`, we `Omit` keys we define on `HbComponentAttrs` from the DOM * base, then add them back: avoids `extends A, B` merging the same key with incompatible types * if a name slips past `DomKeys`. */ export interface HbCardVideoElement extends Omit, HbComponentAttrs { addEventListener( type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions ): void; addEventListener( type: K, listener: (this: this, ev: CustomEvent) => void, options?: boolean | AddEventListenerOptions ): void; addEventListener( type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions ): void; removeEventListener( type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions ): void; removeEventListener( type: K, listener: (this: this, ev: CustomEvent) => void, options?: boolean | EventListenerOptions ): void; removeEventListener( type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions ): void; } declare global { interface HTMLElementTagNameMap { "hb-card-video": HbCardVideoElement; } } export {};