import type { ExpressionFactsIr, ResolvedBindingIr } from "./expression-facts.js"; /** Collects the local names that static imports bind to the reactive-core cell factory. */ export declare function collectOxcNativeCellFactoryNames(statements: readonly unknown[]): Set; /** * Collects `const name = cell(...)` bindings, keyed by name and carrying the * declarator span so a later consumer can tell two same-spelled bindings apart. */ export declare function collectOxcNativeCellBindings(statements: readonly unknown[], factoryNames: ReadonlySet): Map; /** * Collects identifier names whose value or members are written anywhere in the * analyzed tree. A binding in this set can no longer be trusted to keep the * `get` method the cell factory installed, so its facts are invalidated. */ export declare function collectOxcMutatedBindingNames(node: unknown): Set; /** * Collects identifier names that are used anywhere other than as the receiver * of a plain method call such as `name.get()` or `name.set(value)`. * * Such a use may hand the cell to code that replaces its methods later, for * example through an alias, a helper argument or `Object.assign()`, so the * binding can no longer be trusted for a direct subscription. The check is * deliberately syntactic and conservative: over-reporting only costs the * optimization, never correctness. */ export declare function collectOxcEscapedBindingNames(node: unknown): Set; /** * Analyzes one lowered JSX expression against the supported facts subset. * * Returns `undefined` when nothing could be proven, so unsupported inputs keep * their existing IR shape and emitted output byte for byte. */ export declare function analyzeOxcExpressionFacts(expression: Record, nativeCellBindings: ReadonlyMap | undefined): ExpressionFactsIr | undefined; /** Facts for an expression that reads a prop of the component it appears in. */ export declare const COMPONENT_PROP_READ_FACTS: ExpressionFactsIr; /** Facts for an expression proven to evaluate to a primitive render value. */ export declare const RENDERABLE_PRIMITIVE_FACTS: ExpressionFactsIr; /** Groups the module-wide inputs required to resolve expression facts inside a component. */ export interface OxcModuleExpressionFacts { nativeCellFactoryNames: ReadonlySet; moduleNativeCellBindings: ReadonlyMap; mutatedBindingNames: ReadonlySet; escapedBindingNames: ReadonlySet; } /** Collects the module-wide facts inputs once per analyzed program. */ export declare function collectOxcModuleExpressionFacts(program: unknown, statements: readonly unknown[]): OxcModuleExpressionFacts; /** * Resolves the cell bindings visible inside one component body. * * Component-local declarations win over module-level ones, parameters shadow * both, and any binding written or passed around anywhere in the module is * dropped: only a cell used purely as a method call receiver keeps its facts. */ export declare function resolveOxcComponentNativeCellBindings(moduleFacts: OxcModuleExpressionFacts | undefined, bodyStatements: readonly unknown[], shadowingNames: readonly string[]): Map | undefined; //# sourceMappingURL=oxc-expression-facts.d.ts.map