///
import { MobileProject } from './project';
export interface VFSDiff {
file?: VFSFile;
old?: string;
new?: string;
patch?: string;
}
export declare class VFSStorable {
}
/**
* Reference to a file and its data (which can be of any type) in the VFS
*/
export declare class VFSRef {
private filename;
private data;
private commitFn;
private diffFn?;
buffer: Buffer | null;
modified: boolean;
constructor(filename: string, data: T | null, commitFn: (file: VFSFile) => Promise, diffFn?: ((file: VFSFile) => Promise) | undefined);
getFilename(): string;
getData(): T | null;
isModified(): boolean;
setData(data: T): void;
commit(): Promise;
diff(): Promise;
}
export declare type VFSFile = VFSRef;
/**
* Simple virtual filesystem to share files across operations and
* keep track of modifications over time
*/
export declare class VFS {
private openFiles;
constructor();
open(filename: string, data: T, commitFn: (file: VFSFile) => Promise, diffFn?: (file: VFSFile) => Promise): VFSRef;
get(filename: string): VFSRef | null;
isOpen(filename: string): boolean;
all(): {
[key: string]: VFSFile;
};
commitAll(project: MobileProject): Promise;
diffAll(): Promise;
set(filename: string, data: string | VFSStorable): void;
close(ref: VFSFile): void;
}
//# sourceMappingURL=vfs.d.ts.map