import { Repository, Branch, Change, IridescentEnv, Entry } from './Interfaces'; import { Operation } from '@atom/memo'; export default class VirtualTree { private branch; private workTree?; private readonly autoSaveConnection; private readonly replicaId; constructor(iridescentEnv: IridescentEnv, replicaId: number, repo: Repository, branchName: string, sha?: string); load(includeAutosaves?: boolean): Promise; disconnect(): void; addPath(path: string): { operations: (string & { __tag: "Operation"; })[]; uniquePath: string; }; renamePath(oldPath: string, newPath: string): (string & { __tag: "Operation"; })[]; deletePath(path: string): (string & { __tag: "Operation"; })[]; undeletePath(path: string): (string & { __tag: "Operation"; })[]; revertPath(path: string): Promise<{ operations: (string & { __tag: "Operation"; })[]; change: Change; }>; updatePath(path: string, changes: ReadonlyArray): Promise<(string & { __tag: "Operation"; })[]>; private integrateChanges; integrateOperations(operations: ReadonlyArray): Promise<{ changes: ({ path?: undefined; changes?: undefined; } | { path: string; changes: { text: string; range: { startLineNumber: number; startColumn: number; endLineNumber: number; endColumn: number; }; forceMoveMarkers: boolean; }[]; })[]; fixupOperations: ReadonlyArray; }>; hasPath(path: string): boolean; getContent(path: string): Promise; getFileEntries(): ReadonlyArray; commit(message: string): Promise; private pathPieces; private parentIdForPath; private loadBranch; private memoChangeToMonacoChange; private monacoRangeToMemoRange; private getEntireRange; private uniquePath; }