export interface SourceFileSnapshot { size: number; hash: string; } export interface SourceSnapshots { [uri: string]: SourceFileSnapshot; } export declare enum ChangeType { unchanged = 0, create = 1, update = 2, remove = 3 } export type SourceChangeRecord = { type: ChangeType.create; prev: null; current: SourceFileSnapshot; } | { type: ChangeType.remove; prev: SourceFileSnapshot; current: null; } | { type: ChangeType.update; prev: SourceFileSnapshot; current: SourceFileSnapshot; } | { type: ChangeType.unchanged; prev: SourceFileSnapshot; current: SourceFileSnapshot; }; export interface SourceChanges { records: { [uri: string]: SourceChangeRecord; }; count: number; } export interface SourceConflictRecord { remote: SourceChangeRecord; local: SourceChangeRecord; } export interface SourceConflicts { records: { [uri: string]: SourceConflictRecord; }; count: number; } export interface ChangeSummary { localChanges: SourceChanges; remoteChanges: SourceChanges; conflicts: SourceConflicts; }