import {TemplateResult} from "lit" import {DirectiveResult} from "lit/async-directive.js" import {Context} from "../context.js" import {UseShadowComponent, UseShadowView, UseLightComponent, UseLightView} from "./use/tailored.js" export type RenderResult = TemplateResult | DirectiveResult | string | null | undefined | void export type Content = TemplateResult | DirectiveResult | HTMLElement | string | null | undefined | void export type LightViewRenderer = ( (use: UseLightView) => (...props: P) => RenderResult ) export type ShadowViewRenderer = ( (use: UseShadowView) => (...props: P) => RenderResult ) export type LightComponentRenderer = ( (use: UseLightComponent) => RenderResult ) export type ShadowComponentRenderer = ( (use: UseShadowComponent) => RenderResult ) export type LightView

= ( (...props: P) => DirectiveResult ) export type ShadowView

= ( (props: P, meta?: ShadowViewMeta) => DirectiveResult ) export type ShadowAttrs = Partial<{ class: string part: string gpart: string exportparts: string }> & {[key: string]: string} export type ShadowViewMeta = Partial<{ content: TemplateResult auto_exportparts: boolean attrs: ShadowAttrs }> export type ShadowViewInput

= { meta: ShadowViewMeta props: P }