import { CSSResultGroup } from "lit"; import { RenderResult } from "../nexus/parts/types.js"; export type BaseElement = HTMLElement & { connectedCallback(): void; disconnectedCallback(): void; requestUpdate(): void; readonly updateComplete: Promise; render(): RenderResult; }; export type BaseElementClass = { new (...args: any[]): BaseElement; readonly styles?: CSSResultGroup; }; export type HTMLElementClasses = { [key: string]: { new (...args: any[]): HTMLElement; }; }; export type BaseElementClasses = { [key: string]: BaseElementClass; };