/** * Walk the top-level statements of an OXC program and collect a map of * statically-resolvable string-valued `const NAME = ...` declarations. * * Used so decorator metadata fields like `template:` can reference * module-level Tailwind class chains (or any other string constants) via * JS template-literal interpolation. Resolution is iterative: a const may * reference earlier-resolved consts via `${other}` interpolation. * * Only `const` declarations are considered. Non-string initializers, * function calls, member access, and any expression that cannot be reduced * to a string at parse time are ignored. */ export declare function collectStringConstants(oxcProgram: any): Map; /** * Extract decorator metadata from an OXC decorator AST node. * Parses @Component, @Directive, @Pipe, @Injectable, @NgModule arguments. * * `stringConsts`, when provided, lets string-typed metadata fields * (`template`, `selector`, `templateUrl`, `styles`, `styleUrl`, `styleUrls`, * `name`, `exportAs`, `providedIn`) resolve module-level string constants * referenced via template-literal interpolation, e.g. * `template: \`
x
\``. */ export declare function extractMetadata(dec: any | undefined, sourceCode: string, stringConsts?: Map): any; /** * Detect signal-based APIs on class members: input(), model(), output(), * viewChild(), contentChild(), viewChildren(), contentChildren(). */ export declare function detectSignals(classNode: any, sourceCode: string): { inputs: any; outputs: any; viewQueries: any[]; contentQueries: any[]; }; /** * Detect decorator-based field metadata: @Input, @Output, @ViewChild, * @ContentChild, @ViewChildren, @ContentChildren, @HostBinding, @HostListener. */ export declare function detectFieldDecorators(classNode: any, sourceCode: string): { inputs: any; outputs: any; viewQueries: any[]; contentQueries: any[]; hostProperties: Record; hostListeners: Record; }; /** * Analyze constructor parameters for dependency injection. * Returns: * - R3DependencyMetadata[] for normal constructors * - null if class extends another without own constructor (use inherited factory) * - 'invalid' if any parameter has a type-only import token * * Accepts an OXC ClassDeclaration node and the original source string. */ export declare function extractConstructorDeps(classNode: any, sourceCode: string, typeOnlyImports: Set): any[] | 'invalid' | null;