import type { ComponentIr } from "./ir.js"; /** * Folds a component call whose props are all constants into its caller's tree. * * A component call costs a props object, a placeholder node the caller replaces * and, inside the callee, a live text binding for every prop it renders. None of * that is observable when the call site passes only constants: the callee can * only ever produce one fixed subtree, so the caller carries that subtree in its * own template instead. * * The rewrite is deliberately narrow. It accepts only a callee the module keeps * to itself whose whole body is static markup plus single-use prop reads, and a * call site that passes a literal for every prop the body reads. That body holds * no emitter placeholder to substitute, so `serverRenderValuePlaceholder`, which * names one for the whole module rather than recording that this component uses * one, does not disqualify it. Anything else * keeps the shared component, which is also what the code-size budget wants: an * inlined call site with a dynamic prop pays for its own binding, so repeating it * across call sites costs more than the one shared callee it replaces, while * repeated constant markup folds into the caller's template and compresses. */ export declare function inlineConstantComponentCalls(components: readonly ComponentIr[], escapedComponentNames: ReadonlySet): void; //# sourceMappingURL=component-constant-inline.d.ts.map