import { CancellationToken } from "../../../../../base/common/cancellation.js"; import { IDiffResult } from "../../../../../base/common/diff/diff.js"; import { type IValueWithChangeEvent } from "../../../../../base/common/event.js"; import { Disposable } from "../../../../../base/common/lifecycle.js"; import type { URI } from "../../../../../base/common/uri.js"; import { FontInfo } from "../../../../../editor/common/config/fontInfo.js"; import { IConfigurationService } from "../../../../../platform/configuration/common/configuration.service.js"; import type { ContextKeyValue } from "../../../../../platform/contextkey/common/contextkey.js"; import { MultiDiffEditorItem } from "../../../multiDiffEditor/browser/multiDiffSourceResolverService.js"; 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 "../../common/notebookCommon.js"; import { INotebookService } from "../../common/notebookService.service.js"; import { INotebookEditorWorkerService } from "../../common/services/notebookWorkerService.service.js"; 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("../../../../../base/common/event.js").Event; private readonly disposables; private _onDidChange; private diffEditorItems; onDidChange: import("../../../../../base/common/event.js").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); }