import { Disposable, Emitter, Event } from '@opensumi/ide-core-common'; import { ICodeEditor, ITextModel } from '@opensumi/ide-monaco'; import { LineRange } from '@opensumi/monaco-editor-core/esm/vs/editor/common/core/lineRange'; import { UndoRedoGroup } from '@opensumi/monaco-editor-core/esm/vs/platform/undoRedo/common/undoRedo'; import { IDecorationSerializableState, IEnhanceModelDeltaDecoration } from '../../model/enhanceDecorationsCollection'; import { LivePreviewUndoRedoStackElement } from './live-preview-stack'; import { AcceptPartialEditWidget, IPartialEditWidgetOptions, IRemovedWidgetState, IRemovedZoneWidgetOptions, ITextLinesTokens, RemovedZoneWidget } from './live-preview.component'; export interface ITotalCodeInfo { totalAddedLinesCount: number; totalDeletedLinesCount: number; totalChangedLinesCount: number; unresolvedAddedLinesCount: number; unresolvedDeletedLinesCount: number; unresolvedChangedLinesCount: number; } export interface IModelOptions { partialEditWidgetOptions?: IPartialEditWidgetOptions; renderRemovedWidgetImmediately?: boolean; } export declare class LivePreviewDiffDecorationModel extends Disposable { private readonly monacoEditor; private readonly injector; private readonly aiReporter; private readonly inlineStreamDiffService; private readonly inlineDiffService; private readonly messageService; private activeLineDec; private pendingRangeDec; private aiNativeContextKey; private undoRedoService; protected readonly _onPartialEditWidgetListChange: Emitter; readonly onPartialEditWidgetListChange: Event; protected options: IModelOptions; protected model: ITextModel; private addedRangeDec; private partialEditWidgetList; private removedZoneWidgets; private zone; get partialEditWidgetCount(): number; constructor(monacoEditor: ICodeEditor); clear(): void; hide(): void; /** * 仅恢复渲染 status 为 pending 的部件 */ resume(): void; initialize(zone: LineRange): void; getRemovedWidgets(): RemovedZoneWidget[]; showRemovedWidgetByLineNumber(lineNumber: number, texts: ITextLinesTokens[], options: IRemovedZoneWidgetOptions): void; updateZone(newZone: LineRange): void; getZone(): LineRange; touchActiveLine(lineNumber: number): void; private doDiscardPartialWidget; private handlePartialEditAction; private firePartialEditWidgetList; createEditStackElement(group: UndoRedoGroup): LivePreviewUndoRedoStackElement; static computeCodeInfo(partialEditWidgetList: AcceptPartialEditWidget[], addedDecList: IEnhanceModelDeltaDecoration[], removedWidgetList: RemovedZoneWidget[]): ITotalCodeInfo; /** * 获取当前编辑器的代码采纳状态 * 1. 已经采纳的代码信息 * 2. 还未处理的代码信息 */ getTotalCodeInfo(): ITotalCodeInfo; /** * 记录 partial edit widget 与 added range 的映射关系(主要用于位置计算) */ private recordPartialEditWidgetWithAddedDec; acceptUnProcessed(): void; discardUnProcessed(): void; private createPartialEditWidget; touchPartialEditWidgets(lineNumbers: number[]): void; touchAddedRange(ranges: IDecorationSerializableState[]): void; touchRemovedWidget(states: IRemovedWidgetState[], cb?: () => void): void; touchPendingRange(range: LineRange): void; clearPendingLine(): void; clearActiveLine(): void; clearAddedLine(): void; clearPartialEditWidgetList(): void; clearRemovedWidgets(): void; revealFirstDiff(): void; currentChangeIndex: number; revealSiblingChange(direction: 'up' | 'down'): number | undefined; setPreviewerOptions(options: IModelOptions): void; } //# sourceMappingURL=live-preview.decoration.d.ts.map