import { type CSSResult } from '../../lit-exports/base-lit-exports.js'; import { type CustomElementTagName } from '../custom-tag-name.js'; import { type CssVars } from './css-vars.js'; import { type PropertyInitMapBase } from './element-properties.js'; import { type HostClassNamesMap, type HostClassesInitMap } from './host-classes.js'; import { type BaseStringName } from './string-names.js'; /** * A host class instance to be referenced inside of an element definition's `styles` callback. * * @category Internal */ export type HostClass = { selector: CSSResult; name: CSSResult; }; /** * Input type for an element definition's `styles` callback. * * @category Internal */ export type StylesCallbackInput, CssVarKeys extends BaseStringName> = { hostClasses: Record; cssVars: Readonly>; }; /** * The type for an element definition's `styles` callback. * * @category Internal */ export type StylesCallback, CssVarKeys extends BaseStringName> = (input: StylesCallbackInput) => CSSResult; /** * Creates the input for an element definition's `styles` callback. * * @category Internal */ export declare function createStylesCallbackInput, CssVarKeys extends BaseStringName>({ hostClassNames, cssVars, }: { hostClassNames: HostClassNamesMap; cssVars: Readonly>; }): StylesCallbackInput; /** * Used inside of an element instance to apply host classes on each render. * * @category Internal */ export declare function applyHostClasses>({ host, hostClassesInit, hostClassNames, state, inputs, }: { host: HTMLElement; hostClassesInit: Readonly> | undefined; hostClassNames: HostClassNamesMap; state: Readonly; inputs: Readonly; }): void;