import type { VFSSnapshot } from '../runtime-interface';
import type { VirtualFS } from '../virtual-fs';
export interface VFSMkdirOperation {
    type: 'mkdir';
    path: string;
}
export interface VFSWriteFileOperation {
    type: 'writeFile';
    path: string;
    content: string;
}
export interface VFSUnlinkOperation {
    type: 'unlink';
    path: string;
}
export interface VFSRmdirOperation {
    type: 'rmdir';
    path: string;
}
export type VFSPatchOperation = VFSMkdirOperation | VFSWriteFileOperation | VFSUnlinkOperation | VFSRmdirOperation;
export interface VFSPatch {
    operations: VFSPatchOperation[];
    changedPaths: string[];
    touchesNodeModules: boolean;
    touchesPackageJson: boolean;
}
export interface ApplyVfsPatchOptions {
    chunkSize?: number;
    yieldControl?: () => Promise<void>;
}
export declare function createInstallSnapshot(vfs: VirtualFS, cwd: string): VFSSnapshot;
export declare function diffVfsSnapshots(before: VFSSnapshot, after: VFSSnapshot): VFSPatch;
export declare function applyVfsPatch(vfs: VirtualFS, patch: VFSPatch, options?: ApplyVfsPatchOptions): Promise<void>;
//# sourceMappingURL=vfs-patch.d.ts.map