import MagicString from 'magic-string'; /** * Lower instance class field initializers into constructor assignments. * * When `useDefineForClassFields` is `false` (the standard Angular tsconfig), * field initializers must run as assignments inside the constructor body * rather than as native ES class field initializers. This ensures: * * 1. `inject()` calls in fields have an active injection context * 2. Fields referencing other injected fields work (sequential assignment) * 3. Constructor parameter properties are available to field initializers * 4. Inheritance works (parent constructor runs before child field assignments) * * Rules: * - Regular fields with initializers: remove declaration, add `this.field = value;` * - Private fields (`#field`) with initializers: keep `#field;` declaration, add `this.#field = value;` * - Static fields: not lowered * - Fields without initializers: not lowered * - `declare` fields: not lowered * - Assignments are inserted after `super()` (if present), before existing constructor body * - If no constructor exists, one is created (with `super(...args)` for subclasses) */ export declare function lowerClassFields(ms: MagicString, sourceCode: string, oxcProgram: any): void;