import {UnitOfWork, ITransformer, RHS, ToTransformer, XForm} from '../../types'; export interface TemplMgmtProps = HTMLElement, MCMethods = MCProps>{ mainTemplate?: HTMLTemplateElement | string; unsafeTCount: number; styles?: CSSStyleSheet[] | string; clonedTemplate?: Node | undefined; shadowRootMode?: 'open' | 'closed' | undefined | false; //xform: Partial<{[key: string]: RHS}>, /** * transform within ShadowRoot if applicable */ xform: XForm, /** * transform applied to light children, if applicable * Use ":root" to match on the root element */ lcXform: XForm, /** * Use view transitions for the updates */ xxform: XForm, xformImpl?: () => Promise>, skipTemplateClone?: boolean; //homeInOn?: Partial<{[key in keyof MCProps]: Partial<{[key: string]: RHS}>}>; } export interface TemplMgmtActions{ doTransforms(self: this): void; cloneTemplate(self: this): void; } export interface TemplMgmtBase extends HTMLElement, TemplMgmtProps, TemplMgmtActions{} export interface LocalizerProps { } export interface LocalizerMethods{ localize(model: any, transformer: ITransformer, uow: UnitOfWork, matchingElement: Element): string | Partial | Partial | undefined; } export interface Localizer extends HTMLElement, LocalizerProps, LocalizerMethods {} export type LocalizerType = {new(): Localizer }