import { Rule } from '@angular-devkit/schematics'; import { MigrationReport } from '../../utils/report'; import { ScopeOptions } from '../../utils/scope'; export interface V20Options extends ScopeOptions { all?: boolean; /** Ids separados por vírgula. */ items?: string; /** Ids a pular, separados por vírgula. */ skip?: string; /** Modos do schematic oficial do Angular (item app-standalone). */ mode?: string; } export interface MigrationItem { id: string; label: string; /** * Item fora do "Marcar todos" e do `--all`: só roda se pedido (`--items`) ou confirmado no prompt. * Usado para a conversão do app para standalone, que é do Angular. */ optional?: boolean; create: (options: V20Options, report: MigrationReport) => Rule; } export interface SelectionPlan { /** Ids já definidos pelas flags, ou `undefined` quando é preciso perguntar. */ chosen: string[] | undefined; skip: string[]; errors: string[]; } /** Interpreta `--all`, `--items` e `--skip` (não pergunta nada). */ export declare function planSelection(options: V20Options, items: MigrationItem[]): SelectionPlan; /** Aplica `--skip` e devolve os itens na ordem do registro (que é a ordem correta de execução). */ export declare function orderedItems(items: MigrationItem[], chosen: string[], skip: string[]): MigrationItem[];