export interface FileUpdate {
    path: string;
    diff?: string;
}
export interface SyncResult {
    updated: Array<FileUpdate>;
    skipped: Array<string>;
    created: Array<string>;
    deleted: Array<string>;
    sourceFiles: Array<string>;
    errors: Array<string>;
}
export interface SyncOptions {
    deleteRemoved?: boolean;
    previousSourceFiles?: Set<string>;
}
export declare class FileSyncer {
    sync(sourceDir: string, targetDir: string, options?: SyncOptions): Promise<SyncResult>;
    private syncDirectory;
    private shouldUpdateFile;
    private calculateHash;
    private shouldSkipDirectory;
    private shouldSkipFile;
    private deleteRemovedFiles;
}
