///
/**
* @license
* Copyright Google Inc. 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 { Observable } from 'rxjs/Observable';
import { CreateFileAction } from '../tree/action';
import { UpdateBuffer } from '../utility/update-buffer';
import { SimpleSinkBase } from './sink';
export interface VirtualFileSystemSinkHost {
write(path: string, content: Buffer): Observable;
delete(path: string): Observable;
exists(path: string): Observable;
rename(path: string, to: string): Observable;
}
export declare abstract class VirtualFileSystemSink extends SimpleSinkBase {
protected _host: VirtualFileSystemSinkHost;
protected _force: boolean;
protected _filesToDelete: Set;
protected _filesToRename: Set<[string, string]>;
protected _filesToCreate: Map;
protected _filesToUpdate: Map;
constructor(_host: VirtualFileSystemSinkHost, _force?: boolean);
protected _validateCreateAction(action: CreateFileAction): Observable;
protected _validateFileExists(p: string): Observable;
protected _overwriteFile(path: string, content: Buffer): Observable;
protected _createFile(path: string, content: Buffer): Observable;
protected _renameFile(from: string, to: string): Observable;
protected _deleteFile(path: string): Observable;
_done(): Observable;
}