import type { CSSProperties, ReactNode } from "react"; export interface DisplayBrickProps { style?: CSSProperties; /** The class this brick paints with — the HOST's own, off a component the * splitter ported out of real host source, so the port looks like what it was * ported from. A node's own `className` is not it and never reaches the DOM: * the renderer writes `hostClass` itself, after the props it binds and only * for a `source: "ported"` node, so neither a model nor a slot can spell it. * * Only the gauntlet stamps that source, and only off the DIALECT it graded the * screen in (`apps` checking/component-screen.ts) — which a screen has no way * to name. */ hostClass?: string; children?: ReactNode; } /** The style a node actually paints with: the model's, minus every declaration * whose property is not on the allowlist. A pure key filter — no value is read, * so there is no CSS parser and nothing to bypass. */ export declare function safeStyle(style: CSSProperties | null | undefined): CSSProperties | undefined; /** * THE DOOR — a node's bound props as it may paint with them. The renderer calls * this wherever model-written props become a component's props, so ONE list * covers every node: a brick, a Kit component and a host component alike. It has * to be here rather than inside each implementation, because a Kit root MERGES * `style` onto its own (`
`) — filtered * only in the bricks, `Card` painted the `backgroundImage` a `
` may not. */ export declare function safeProps(props: Record): Record; export declare const DISPLAY_BRICKS: Record ReactNode>; /** * A screen paints inside its own box and nowhere else. Capability-shaped, like * the property allowlist: `contain: paint` makes this element the containing * block for every fixed and absolutely positioned descendant, so `position: * fixed; width: 200vw` is held by the BOX — nothing had to read the word "fixed". */ export declare const SURFACE_CONTAINMENT: CSSProperties;