import { UpdateRecorder } from '@angular-devkit/schematics';
export interface Host {
    write(path: string, content: string): Promise<void>;
    read(path: string): Promise<string>;
}
export interface Change {
    apply(host: Host): Promise<void>;
    readonly path: string | null;
    readonly order: number;
    readonly description: string;
}
export declare class NoopChange implements Change {
    description: string;
    order: number;
    path: any;
    apply(): Promise<void>;
}
export declare class InsertChange implements Change {
    path: string;
    pos: number;
    toAdd: string;
    order: number;
    description: string;
    constructor(path: string, pos: number, toAdd: string);
    apply(host: Host): Promise<void>;
}
export declare class RemoveChange implements Change {
    path: string;
    private pos;
    toRemove: string;
    order: number;
    description: string;
    constructor(path: string, pos: number, toRemove: string);
    apply(host: Host): Promise<void>;
}
export declare class ReplaceChange implements Change {
    path: string;
    private pos;
    oldText: string;
    newText: string;
    order: number;
    description: string;
    constructor(path: string, pos: number, oldText: string, newText: string);
    apply(host: Host): Promise<void>;
}
export declare function applyToUpdateRecorder(recorder: UpdateRecorder, changes: Change[]): void;
