import { html, svg } from 'lit-html'; import { Signal } from 'signal-polyfill'; export { html, svg }; export type RenderFunction = () => ReturnType; export type CleanupFunction = () => void; export type EffectFunction = () => CleanupFunction | void; export type StylePropsFunction = (props: Record) => void; type AttributeSignals = { [K in Attrs]: Signal.State; }; export type ComponentContext = AttributeSignals & { internals: ElementInternals; effect: (fn: EffectFunction) => void; styleProps: StylePropsFunction; }; export type FunctionalComponent = (context: ComponentContext) => RenderFunction; export interface DefineOptions { setup: FunctionalComponent; tagName?: string; attributes?: Attrs[]; useShadow?: boolean; formAssociated?: boolean; styles?: string; } declare function lightElement(fn: FunctionalComponent): void; declare function lightElement(styles: string, fn: FunctionalComponent): void; declare function lightElement(observedAttributes: Attrs[], fn: FunctionalComponent): void; declare function lightElement(observedAttributes: Attrs[], styles: string, fn: FunctionalComponent): void; declare function shadowElement(fn: FunctionalComponent): void; declare function shadowElement(styles: string, fn: FunctionalComponent): void; declare function shadowElement(observedAttributes: Attrs[], fn: FunctionalComponent): void; declare function shadowElement(observedAttributes: Attrs[], styles: string, fn: FunctionalComponent): void; declare const state: (value: T) => Signal.State; declare const computed: (fn: () => T) => Signal.Computed; export { state, computed, lightElement, shadowElement }; export declare function define(options: DefineOptions): void; //# sourceMappingURL=index.d.ts.map