import { attrs } from "./attrs/attrs.js"; export type Renderable = HTMLElement | ShadowRoot | DocumentFragment; export type Queryable = HTMLElement | ShadowRoot | Element | Document | DocumentFragment; export type AttrValue = string | boolean | number | undefined | null | void; export type AttrKind = (typeof String | typeof Number | typeof Boolean); export type AttrType = (H extends typeof String ? string | undefined : H extends typeof Number ? number | undefined : H extends typeof Boolean ? boolean : never); export type AttrSpec = { [key: string]: AttrKind; }; export type AttrTypes = { [P in keyof A]: AttrType; }; export type Attrs = ReturnType; export type HTMLElementClasses = { [key: string]: { new (...args: any[]): HTMLElement; }; }; export type RegisterOptions = { soft: boolean; upgrade: boolean; };