import { type Component } from "solid-js"; import type { ColumnEditorRowRendererProps as VanillaColumnEditorRowRendererProps, HeaderRendererProps as VanillaHeaderRendererProps } from "simple-table-core"; import type { MountRegistry } from "../MountRegistry"; /** * Wraps a Solid component into a function that returns an HTMLElement, matching * the vanilla renderer contract expected by simple-table-core. * * Solid's render() is synchronous, so no flushSync equivalent is needed. * The dispose handle is registered so core's `onRendererHostDiscard` can tear * down the reactive tree (and any portal / floating UI) when the host is discarded. */ export declare function wrapSolidRenderer

(registry: MountRegistry, component: Component

): (props: P) => HTMLElement; /** * Header renderer wrapper that reuses one host element so sort/filter icon * refreshes update props in place (via a reactive props store) instead of * remounting the Solid subtree and wiping local state. Mirrors Vue's * {@link wrapVueHeaderRenderer} / React's {@link wrapReactHeaderRenderer}. */ export declare function wrapSolidHeaderRenderer(registry: MountRegistry, component: Component): (props: VanillaHeaderRendererProps) => HTMLElement; /** * Like {@link wrapSolidRenderer}, but reuses one wrapper per accessor so * unstable column rebuilds keep a stable function identity on ColumnDef. * * For `kind: "header"`, also reuses a single mount host (Vue * {@link wrapCachedVueRenderer} / React {@link wrapCachedHeaderRenderer}) so * sort/filter refreshes preserve state. */ export declare function wrapCachedSolidRenderer

(registry: MountRegistry, accessor: string, kind: "cell" | "header", component: Component

): (props: P) => HTMLElement; /** * Column-editor row renderer: one host per `accessor` so popout list rebuilds * update in place instead of remounting Solid state (mirrors Vue/React). */ export declare function wrapSolidColumnEditorRowRenderer(registry: MountRegistry, component: Component): (props: VanillaColumnEditorRowRendererProps) => HTMLElement; /** * Renders a static Solid JSX node (already evaluated) into an HTMLElement. * Used for props like tableEmptyStateRenderer that are not called with arguments. */ export declare function wrapSolidNode(registry: MountRegistry, node: any): HTMLElement; /** * Converts a Solid node to an HTML string. * Used for icon props where vanilla expects string | HTMLElement | SVGSVGElement. */ export declare function solidNodeToHtmlString(node: any): string; /** Returns true if the value is a Solid component (a function). */ export declare function isSolidComponent(value: unknown): value is Component;