import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle"; import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable"; import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri"; import { IRange } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range"; import { IDocumentDiff } from "../../../../../editor/common/diff/documentDiffProvider.js"; import { DetailedLineRangeMapping } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/diff/rangeMapping"; import { TextEdit } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages"; import { ITextModel, ITextSnapshot } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/model"; import { IEditorWorkerService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/editorWorker.service"; import { IAccessibilitySignalService } from "@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService.service"; import { ICellEditOperation } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon"; import { ModifiedFileEntryState } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/editing/chatEditingService"; import { IChatResponseModel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel"; type affectedLines = { linesAdded: number; linesRemoved: number; lineCount: number; hasRemainingEdits: boolean; }; type acceptedOrRejectedLines = affectedLines & { state: "accepted" | "rejected"; }; export declare class ChatEditingTextModelChangeService extends Disposable { private readonly originalModel; private readonly modifiedModel; private readonly state; private readonly _editorWorkerService; private readonly _accessibilitySignalService; private static readonly _lastEditDecorationOptions; private static readonly _pendingEditDecorationOptions; private static readonly _atomicEditDecorationOptions; private _isEditFromUs; get isEditFromUs(): boolean; private _allEditsAreFromUs; get allEditsAreFromUs(): boolean; private _isExternalEditInProgress; private _diffOperation; private _diffOperationIds; private readonly _diffInfo; get diffInfo(): IObservable<{ originalModel: ITextModel; modifiedModel: ITextModel; keep: (changes: DetailedLineRangeMapping) => Promise; undo: (changes: DetailedLineRangeMapping) => Promise; identical: boolean; quitEarly: boolean; changes: readonly DetailedLineRangeMapping[]; moves: readonly import("@codingame/monaco-vscode-api/vscode/vs/editor/common/diff/linesDiffComputer").MovedText[]; }>; private readonly _editDecorationClear; private _editDecorations; private readonly _didAcceptOrRejectAllHunks; readonly onDidAcceptOrRejectAllHunks: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event; private readonly _didAcceptOrRejectLines; readonly onDidAcceptOrRejectLines: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event; private notifyHunkAction; private _didUserEditModelFired; private readonly _didUserEditModel; readonly onDidUserEditModel: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event; private _originalToModifiedEdit; private lineChangeCount; private linesAdded; private linesRemoved; constructor(originalModel: ITextModel, modifiedModel: ITextModel, state: IObservable, isExternalEditInProgress: (() => boolean) | undefined, _editorWorkerService: IEditorWorkerService, _accessibilitySignalService: IAccessibilitySignalService); private updateLineChangeCount; clearCurrentEditLineDecoration(): void; areOriginalAndModifiedIdentical(): Promise; acceptAgentEdits(resource: URI, textEdits: (TextEdit | ICellEditOperation)[], isLastEdits: boolean, responseModel: IChatResponseModel | undefined): Promise<{ rewriteRatio: number; maxLineNumber: number; }>; private _createEditSource; private _applyEdits; /** * Keeps the current modified document as the final contents. */ keep(): void; /** * Undoes the current modified document as the final contents. */ undo(): void; private _reset; resetDocumentValues(newOriginal: string | ITextSnapshot | undefined, newModified: string | undefined): Promise; private _mirrorEdits; private _keepHunk; private _undoHunk; getDiffInfo(): Promise; private _updateDiffInfoSeq; hasHunkAt(range: IRange): boolean; private _updateDiffInfo; } export {};