import { Capsule } from '../../../extensions/isolator/capsule';
import AbstractVinyl from './abstract-vinyl';
import Symlink from '../../../links/symlink';
import RemovePath from './remove-path';
export default class DataToPersist {
    files: AbstractVinyl[];
    symlinks: Symlink[];
    remove: RemovePath[];
    constructor();
    addFile(file: AbstractVinyl): void;
    addManyFiles(files?: AbstractVinyl[]): void;
    removePath(pathToRemove: RemovePath): void;
    removeManyPaths(pathsToRemove?: RemovePath[]): void;
    addSymlink(symlink: Symlink): void;
    addManySymlinks(symlinks?: Symlink[]): void;
    merge(dataToPersist: DataToPersist | null | undefined): void;
    persistAllToFS(): Promise<void>;
    persistAllToCapsule(capsule: any, opts?: {
        keepExistingCapsule: boolean;
    }): Promise<void>;
    _writeFileToCapsule(capsule: Capsule, file: AbstractVinyl, opts?: {
        overwriteExistingFile: boolean;
    }): Promise<any>;
    atomicSymlink(capsule: Capsule, symlink: Symlink): Promise<void>;
    addBasePath(basePath: string): void;
    toConsole(): void;
    filterByPath(filterFunc: Function): DataToPersist;
    _persistFilesToFS(): Promise<(string | null | undefined)[]>;
    _persistSymlinksToFS(): Promise<void[]>;
    _deletePathsFromFS(): Promise<(boolean | void)[]>;
    _validateAbsolute(): void;
    _validateRelative(): void;
    _log(): void;
    _assertRelative(pathToCheck: string): void;
    _throwForDirectoryCollision(file: AbstractVinyl): void;
}
