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;