import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation"; import { IDiffResult } from "@codingame/monaco-vscode-api/vscode/vs/base/common/diff/diff"; import { type IValueWithChangeEvent } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event"; import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle"; import type { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri"; import { FontInfo } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/config/fontInfo"; import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service"; import type { ContextKeyValue } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey"; import { MultiDiffEditorItem } from "@codingame/monaco-vscode-aac7027b-326c-513a-95a9-e4eedd151b38-common/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffSourceResolverService"; import { IDiffElementViewModelBase } from "./diffElementViewModel.js"; import { NotebookDiffEditorEventDispatcher } from "./eventDispatcher.js"; import { INotebookDiffViewModel, INotebookDiffViewModelUpdateEvent } from "./notebookDiffEditorBrowser.js"; import { NotebookTextModel } from "@codingame/monaco-vscode-notebook-service-override/vscode/vs/workbench/contrib/notebook/common/model/notebookTextModel"; import { INotebookDiffEditorModel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon"; import { INotebookService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookService.service"; import { INotebookEditorWorkerService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/services/notebookWorkerService.service"; import { IDiffEditorHeightCalculatorService } from "./editorHeightCalculator.js"; export declare class NotebookDiffViewModel extends Disposable implements INotebookDiffViewModel, IValueWithChangeEvent { private readonly model; private readonly notebookEditorWorkerService; private readonly configurationService; private readonly eventDispatcher; private readonly notebookService; private readonly diffEditorHeightCalculator; private readonly fontInfo?; private readonly excludeUnchangedPlaceholder?; private readonly placeholderAndRelatedCells; private readonly _items; get items(): readonly IDiffElementViewModelBase[]; private readonly _onDidChangeItems; readonly onDidChangeItems: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event; private readonly disposables; private _onDidChange; private diffEditorItems; onDidChange: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event; private notebookMetadataViewModel?; get value(): readonly NotebookMultiDiffEditorItem[]; private _hasUnchangedCells?; get hasUnchangedCells(): boolean; private _includeUnchanged?; get includeUnchanged(): boolean; set includeUnchanged(value: boolean); private hideOutput?; private ignoreMetadata?; private originalCellViewModels; constructor(model: INotebookDiffEditorModel, notebookEditorWorkerService: INotebookEditorWorkerService, configurationService: IConfigurationService, eventDispatcher: NotebookDiffEditorEventDispatcher, notebookService: INotebookService, diffEditorHeightCalculator: IDiffEditorHeightCalculatorService, fontInfo?: FontInfo | undefined, excludeUnchangedPlaceholder?: boolean | undefined); dispose(): void; private clear; computeDiff(token: CancellationToken): Promise; private toggleNotebookMetadata; private updateDiffEditorItems; private updateViewModels; private createDiffViewModels; } /** * making sure that swapping cells are always translated to `insert+delete`. */ export declare function prettyChanges(original: NotebookTextModel, modified: NotebookTextModel, diffResult: IDiffResult): void; export type CellDiffInfo = { originalCellIndex: number; modifiedCellIndex: number; type: "unchanged" | "modified"; } | { originalCellIndex: number; type: "delete"; } | { modifiedCellIndex: number; type: "insert"; }; export declare abstract class NotebookMultiDiffEditorItem extends MultiDiffEditorItem { readonly type: IDiffElementViewModelBase["type"]; readonly containerType: IDiffElementViewModelBase["type"]; kind: "Cell" | "Metadata" | "Output"; constructor(originalUri: URI | undefined, modifiedUri: URI | undefined, goToFileUri: URI | undefined, type: IDiffElementViewModelBase["type"], containerType: IDiffElementViewModelBase["type"], kind: "Cell" | "Metadata" | "Output", contextKeys?: Record); }