import { ScopedRegistryLitElement } from "@fluid-topics/ft-wc-utils"; export type LitElementOrConstructor = ScopedRegistryLitElement | typeof ScopedRegistryLitElement; export interface FluidTopicsComponentsLoader { loadComponentsInShadowRoot(element: ScopedRegistryLitElement): Promise; loadComponentsInTemplate(template?: { html: string; tagNames?: string[]; }, targetScopedComponent?: LitElementOrConstructor): Promise; loadComponentsInHtml(html: string, targetScopedComponent?: LitElementOrConstructor): Promise; loadComponents(tagNames: Iterable, targetScopedComponent?: LitElementOrConstructor): Promise; loadComponent(tagName: string, targetScopedComponent?: LitElementOrConstructor): Promise; defineComponent(tagName: string, klass: typeof HTMLElement, targetScopedComponent?: LitElementOrConstructor): void; } declare global { interface Window { FluidTopicsComponentsLoader: FluidTopicsComponentsLoader; } }