import { CancellationToken } from 'vscode-languageserver'; import { ImportGroup, ImportNameInfo, ImportStatements, ModuleNameInfo } from '../analyzer/importStatementUtils'; import { ImportAsNode, ImportFromAsNode, ImportFromNode, ParseNode } from '../parser/parseNodes'; import { ParseFileResults } from '../parser/parser'; import { FileEditAction } from './editAction'; import { Range, TextRange } from './textRange'; import { Uri } from './uri/uri'; export declare class TextEditTracker { private _mergeOnlyDuplications; private readonly _nodesRemoved; private readonly _results; private readonly _pendingNodeToRemove; constructor(_mergeOnlyDuplications?: boolean); addEdits(...edits: FileEditAction[]): void; addEdit(fileUri: Uri, range: Range, replacementText: string): void; addEditWithTextRange(parseFileResults: ParseFileResults, range: TextRange, replacementText: string): void; deleteImportName(parseFileResults: ParseFileResults, importToDelete: ImportFromAsNode | ImportAsNode): void; addOrUpdateImport(parseFileResults: ParseFileResults, importStatements: ImportStatements, moduleNameInfo: ModuleNameInfo, importGroup: ImportGroup, importNameInfo?: ImportNameInfo[], updateOptions?: { currentFromImport: ImportFromNode; originalModuleName: string; }): void; removeNodes(...nodes: { node: ParseNode; parseFileResults: ParseFileResults; }[]): void; isNodeRemoved(node: ParseNode): boolean; getEdits(token: CancellationToken): FileEditAction[]; private _addImport; private _tryUpdateImport; private _getDeletionsForSpan; private _removeEdits; private _getEditsToMerge; private _getOverlappingForSpan; private _processNodeRemoved; private _handleImportNameNode; private _removeNodesHandled; private _markNodeRemoved; }