import { RenderProp } from "./types.js"; import { StateAttrMap } from "@videojs/core/dom"; import { CSSProperties, ReactElement, Ref } from "react"; //#region src/utils/use-render.d.ts type IntrinsicTagName = keyof React.JSX.IntrinsicElements; interface UseRenderComponentProps { className?: string | ((state: State) => string | undefined) | undefined; style?: CSSProperties | ((state: State) => CSSProperties | undefined) | undefined; render?: RenderProp | undefined; } interface UseRenderParameters { state: State; ref?: Ref | Ref[] | undefined; props?: object | object[] | undefined; stateAttrMap?: StateAttrMap | undefined; } /** * Render a UI component element. * * Handles: * - Default tag rendering * - Render prop (element or function) * - Props merging (event handlers chained, className concatenated, style merged) * - Ref composition * - className/style as functions of state * * @public * @example * ```tsx * return renderElement('button', componentProps, { * state, * ref: [forwardedRef, buttonRef], * props: [{ type: 'button' }, elementProps, getButtonProps], * }); * ``` */ declare function renderElement(element: TagName, componentProps: UseRenderComponentProps, params: UseRenderParameters): ReactElement | null; declare namespace renderElement { type ComponentProps = UseRenderComponentProps; type Parameters = UseRenderParameters; } //#endregion export { UseRenderComponentProps, UseRenderParameters, renderElement }; //# sourceMappingURL=use-render.d.ts.map