import { Rule } from '@angular-devkit/schematics'; import { MigrationReport } from '../../utils/report'; import { ScopeOptions } from '../../utils/scope'; import { AliasResolver } from '../../utils/tsconfig-paths'; export declare const ITEM_ID = "modules"; /** Como um símbolo aparece em um template: tag (`selector`), atributo (`attribute`) ou pipe (`pipe`). */ export interface UsedBy { selector?: string[]; attribute?: string[]; pipe?: string[]; } export interface MapSymbol { symbol: string; entrypoint: string; usedBy?: UsedBy; } export interface ForRootRule { /** Nome da função `provideX` que substitui `X.forRoot(...)`. */ replacement: string; entrypoint: string; /** Quando `true`, os argumentos de `forRoot` são repassados para a função. */ args: boolean; } export interface ModuleEntry { module: string; entrypoint: string; standalone: MapSymbol[]; transitive: MapSymbol[]; forRoot?: ForRootRule; forChild?: 'remove'; manual?: string; } export interface ModulesMap { modules: ModuleEntry[]; } /** Tabela gerada por `scripts/generate-modules-map.js` (não editar à mão). */ export declare const MODULES_MAP: ModulesMap; export interface FileMigrationResult { updated: string; manual: Array<{ line: number; message: string; }>; } /** Lê um arquivo auxiliar (ex.: `templateUrl`) pelo caminho do `Tree`; `undefined` quando não existe. */ export type FileReader = (filePath: string) => string | undefined; /** `true` quando o template usa o selector/atributo/pipe descrito em `usedBy` (sem `usedBy`, considera usado). */ export declare function isUsedInTemplates(usedBy: UsedBy | undefined, templates: string[]): boolean; export declare function migrateModulesInContent(filePath: string, content: string, readFile?: FileReader, map?: ModulesMap, resolveAlias?: AliasResolver): FileMigrationResult; export declare function migrateModulesToStandalone(options: ScopeOptions, report: MigrationReport): Rule; export declare function migrate(options?: ScopeOptions): Rule;