import { type HtmlInterpolation } from '../template-transforms/vir-html/html-interpolation.js'; import { type TypedEvent } from '../typed-event/typed-event.js'; import { type CustomElementTagName } from './custom-tag-name.js'; import { type DeclarativeElement, type DeclarativeElementHost } from './declarative-element.js'; import { type CssVars } from './properties/css-vars.js'; import { type EventDescriptorMap, type EventInitMapEventDetailExtractor, type EventsInitMap } from './properties/element-events.js'; import { type PropertyInitMapBase } from './properties/element-properties.js'; import { type BaseStringName, type StringNameMap } from './properties/string-names.js'; /** * Type for the `render` element definition method. * * @category Internal */ export type RenderCallback = any, CssVarKeys extends BaseStringName = any, SlotNames extends ReadonlyArray = any, TestIds extends ReadonlyArray = any> = (params: RenderParams) => HtmlInterpolation; /** * Type for the `init` and `cleanup` element definition methods. * * @category Internal */ export type InitCallback, CssVarKeys extends BaseStringName, SlotNames extends ReadonlyArray, TestIds extends ReadonlyArray> = (params: RenderParams) => undefined | void; /** * Type for the `updateState` render parameter. * * @category Internal */ export type UpdateStateCallback = (newState: Partial) => void; /** * The full parameters object passed to `render`, `init`, and `cleanup` element definition methods. * * @category Internal */ export type RenderParams, CssVarKeys extends BaseStringName, SlotNames extends ReadonlyArray, TestIds extends ReadonlyArray> = { state: Readonly; cssVars: Readonly>; updateState: UpdateStateCallback; events: EventDescriptorMap; host: DeclarativeElementHost; slotNames: Readonly>; testIds: Readonly>; /** Dispatch an event from the current element. */ dispatch: (event: TypedEvent> | Event) => boolean; inputs: Readonly; }; /** * This is used to create the parameters passed to the `render`, `init`, and `cleanup` element * definition methods whenever they are called. * * @category Internal */ export declare function createRenderParams, CssVarKeys extends BaseStringName, SlotNames extends ReadonlyArray, TestIds extends ReadonlyArray>({ element, eventsMap, cssVars, slotNamesMap, testIdsMap, }: { element: DeclarativeElement; eventsMap: EventDescriptorMap; cssVars: Readonly>; slotNamesMap: Readonly>; testIdsMap: Readonly>; }): RenderParams;