/** * Structural stand-in for a React element. Anything that matches this * shape (``type`` + ``props`` + ``$$typeof``) is accepted by React's * runtime. Hand-written renderers in W5 will narrow this to * ``import type { ReactElement } from "react"``. */ export interface FluxElement { readonly type: string | ((props: Record) => FluxElement | null); readonly props: Record; readonly key: string | number | null; } /** The runtime shape of every flux node in a surface tree. */ export interface FluxNode { component: string; id: string; [prop: string]: unknown; } /** A loaded token pack (light or dark). Shape follows tokens.schema.json. */ export type FluxTokenPack = Record; /** The catalog JSON emitted by the flux build (see catalog.schema.json). */ export type FluxCatalogJson = Record; /** Render-time context passed to every renderer. */ export interface FluxRenderContext { theme: FluxTokenPack; catalog: FluxCatalogJson; renderers: Record; /** Fallback path for unknown component kinds (basic-catalog degrade). */ fallback: (node: FluxNode) => FluxElement; } /** The one function every renderer implements. */ export type FluxRenderer = (node: FluxNode, ctx: FluxRenderContext) => FluxElement; //# sourceMappingURL=types.d.ts.map