import * as ts from 'typescript'; /** Collect type-only imported names: `import type { X }` and `import { type X }`. */ export declare function collectTypeOnlyImports(sf: ts.SourceFile): Set; /** Recursively find all class declarations in a source file, including nested scopes. */ export declare function findAllClasses(sf: ts.SourceFile): ts.ClassDeclaration[]; /** Unwrap forwardRef(() => X) to X. Returns the original node if not a forwardRef call. */ export declare function unwrapForwardRef(node: ts.Expression): ts.Expression; /** Unwrap forwardRef(() => X) to X for OXC AST nodes. Returns the original node if not a forwardRef call. */ export declare function unwrapForwardRefOxc(node: any): any; /** * Resolve the module specifier to use for a synthetic import of a registry * declaration referenced from `currentFileName`. * * Order of preference: * 1. `entry.sourcePackage` — external packages scanned from `.d.ts` resolve * via their package name (proper barrel exports). * 2. A relative path derived from `currentFileName` to `entry.fileName` — for * local workspace classes scanned from real source files. This is what * NgModule/tuple export expansion must use: the class lives in its own * file, not the module/barrel file that re-exports it, so importing from * the module specifier fails with * `"X" is not exported by ".../the.module.ts"`. * 3. `fallbackSpecifier` — the import path of the module/tuple itself, used * for `.d.ts` entries (whose file path is not a usable import target) and * when the registry has no file location for the class. * * Returns `undefined` when the class is declared in `currentFileName` itself * (already in scope — no synthetic import needed). */ export declare function resolveSyntheticImportSpecifier(currentFileName: string, entry: { sourcePackage?: string; fileName?: string; }, fallbackSpecifier: string | undefined): string | undefined; /** * Derive a relative module specifier from `fromFile` to `toFile`, suitable for * a synthetic `import { … } from '…'` statement: strips the file extension, * normalizes to POSIX separators, and ensures an explicit `./` prefix. */ export declare function deriveRelativeImportPath(fromFile: string, toFile: string): string; export { ANGULAR_DECORATORS } from './constants.js';