import type { ComponentIr } from "./ir.js"; /** * Collects component names the module uses as a value rather than only as a JSX * tag. * * A JSX tag name parses as `JSXIdentifier`, so any plain `Identifier` with the * same name is a reference that could hand the component to something the * compiler cannot see. The declaration's own `id` is not such a reference. * Non-reference identifiers such as a plain object key count as escapes too, * which only costs an optimization. */ export declare function collectOxcEscapedComponentNames(program: unknown, componentNames: ReadonlySet): Set; /** * Lowers a component's prop children to text bindings when every in-module call * site passes a value the compiler would already render as text on its own. * * A prop read is normally treated as a potential render value, because a caller * could pass an element or a list. That forces the generic render-value * insertion, which reaches the keyed list runtime. When the callee cannot be * reached from outside the module and every call site passes a literal or a * proven native cell read, the prop can only be text, so the callee gets an * ordinary text binding instead. * * This runs for every target. Both shapes render one text node, so the hydrated * structure is unchanged, and each server emitter calls a lowered callee with * its own calling convention rather than inferring one from the classification. */ export declare function lowerProvenTextComponentProps(components: readonly ComponentIr[], escapedComponentNames: ReadonlySet): void; //# sourceMappingURL=component-prop-text.d.ts.map