/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ import { SchematicContext, Tree } from '@angular-devkit/schematics'; import { ProjectDefinition } from '@angular-devkit/core/src/workspace'; import { Constructor, Migration, PostMigrationAction } from '../update-tool/migration'; export declare type DevkitContext = { /** Devkit tree for the current migrations. Can be used to insert/remove files. */ tree: Tree; /** Name of the project the migrations run against. */ projectName: string; /** Workspace project the migrations run against. */ project: ProjectDefinition; /** Whether the migrations run for a test target. */ isTestTarget: boolean; }; export declare abstract class DevkitMigration extends Migration { /** Prints an informative message with context on the current target. */ protected printInfo(text: string): void; /** * Optional static method that will be called once the migration of all project * targets has been performed. This method can be used to make changes respecting the * migration result of all individual targets. e.g. removing HammerJS if it * is not needed in any project target. */ static globalPostMigration?(tree: Tree, context: SchematicContext): PostMigrationAction; } export declare type DevkitMigrationCtor = Constructor> & { [m in keyof typeof DevkitMigration]: (typeof DevkitMigration)[m]; };