import { Disposable, DisposableCollection } from '@theia/core'; import { Observable } from '@theia/core/lib/common/observable'; import { DiffComputer } from '@theia/core/lib/common/diff'; import { Range } from '@theia/core/shared/vscode-languageserver-protocol'; import { MonacoEditor } from '@theia/monaco/lib/browser/monaco-editor'; import { MonacoEditorModel } from '@theia/monaco/lib/browser/monaco-editor-model'; import { MergeRange, MergeRangeAcceptedState, MergeRangeResultState, MergeSide } from './merge-range'; import { DetailedLineRangeMapping, DocumentLineRangeMap, DocumentRangeMap, LineRangeMapping, RangeMapping } from './range-mapping'; import { LiveDiff } from './live-diff'; import { LineRange } from './line-range'; export declare const MergeEditorModelProps: unique symbol; export interface MergeEditorModelProps { readonly baseEditor: MonacoEditor; readonly side1Editor: MonacoEditor; readonly side2Editor: MonacoEditor; readonly resultEditor: MonacoEditor; readonly options?: { readonly resetResult?: boolean; }; } export declare class MergeEditorModel implements Disposable { protected readonly props: MergeEditorModelProps; protected readonly diffComputer: DiffComputer; private readonly m2p; protected readonly toDispose: DisposableCollection; protected side1LiveDiff: LiveDiff; protected side2LiveDiff: LiveDiff; protected resultLiveDiff: LiveDiff; protected shouldRecomputeHandledState: boolean; protected readonly mergeRangesObservable: Observable; get mergeRanges(): readonly MergeRange[]; protected readonly mergeRangesDataObservable: Observable, void>; protected readonly side1ToResultLineRangeMapObservable: Observable; get side1ToResultLineRangeMap(): DocumentLineRangeMap; protected readonly resultToSide1LineRangeMapObservable: Observable; get resultToSide1LineRangeMap(): DocumentLineRangeMap; protected readonly side2ToResultLineRangeMapObservable: Observable; get side2ToResultLineRangeMap(): DocumentLineRangeMap; protected readonly resultToSide2LineRangeMapObservable: Observable; get resultToSide2LineRangeMap(): DocumentLineRangeMap; protected readonly baseToSide1LineRangeMapObservable: Observable; get baseToSide1LineRangeMap(): DocumentLineRangeMap; protected readonly side1ToBaseLineRangeMapObservable: Observable; get side1ToBaseLineRangeMap(): DocumentLineRangeMap; protected readonly baseToSide2LineRangeMapObservable: Observable; get baseToSide2LineRangeMap(): DocumentLineRangeMap; protected readonly side2ToBaseLineRangeMapObservable: Observable; get side2ToBaseLineRangeMap(): DocumentLineRangeMap; protected readonly baseToResultLineRangeMapObservable: Observable; get baseToResultLineRangeMap(): DocumentLineRangeMap; protected readonly resultToBaseLineRangeMapObservable: Observable; get resultToBaseLineRangeMap(): DocumentLineRangeMap; protected readonly baseToSide1RangeMapObservable: Observable; get baseToSide1RangeMap(): DocumentRangeMap; protected readonly side1ToBaseRangeMapObservable: Observable; get side1ToBaseRangeMap(): DocumentRangeMap; protected readonly baseToSide2RangeMapObservable: Observable; get baseToSide2RangeMap(): DocumentRangeMap; protected readonly side2ToBaseRangeMapObservable: Observable; get side2ToBaseRangeMap(): DocumentRangeMap; protected readonly baseToResultRangeMapObservable: Observable; get baseToResultRangeMap(): DocumentRangeMap; protected readonly resultToBaseRangeMapObservable: Observable; get resultToBaseRangeMap(): DocumentRangeMap; protected readonly diffComputingStateObservable: Observable; protected readonly diffComputingStateForSidesObservable: Observable; readonly isUpToDateObservable: Observable; protected readonly unhandledMergeRangesCountObservable: Observable; get unhandledMergeRangesCount(): number; protected _onInitialized: Promise; get onInitialized(): Promise; get baseDocument(): MonacoEditorModel; get side1Document(): MonacoEditorModel; get side2Document(): MonacoEditorModel; get resultDocument(): MonacoEditorModel; protected get resultEditor(): MonacoEditor; get side1Changes(): readonly DetailedLineRangeMapping[]; get side2Changes(): readonly DetailedLineRangeMapping[]; get resultChanges(): readonly DetailedLineRangeMapping[]; protected init(): void; protected computeMergeRangeStateFromResult(mergeRange: MergeRange): MergeRangeResultState; protected doInit(): Promise; dispose(): void; isDisposed(): boolean; reset(): Promise; protected computeAutoMergedResult(): string; protected computeMergeRanges(): MergeRange[]; hasMergeRange(mergeRange: MergeRange): boolean; protected getMergeRangeData(mergeRange: MergeRange): MergeRangeData; getMergeRangeResultState(mergeRange: MergeRange): MergeRangeResultState; applyMergeRangeAcceptedState(mergeRange: MergeRange, state: MergeRangeAcceptedState): void; isMergeRangeHandled(mergeRange: MergeRange): boolean; markMergeRangeAsHandled(mergeRange: MergeRange, options?: { undoRedo?: false | { callback?: { didUndo(): void; didRedo(): void; }; }; }): void; getLineRangeInResult(mergeRange: MergeRange): LineRange; protected getResultLineRangeMapping(mergeRange: MergeRange): LineRangeMapping; translateBaseRangeToSide(range: Range, side: MergeSide): Range; translateSideRangeToBase(range: Range, side: MergeSide): Range; translateBaseRangeToResult(range: Range): Range; translateResultRangeToBase(range: Range): Range; protected computeSideToResultDiff(sideChanges: readonly LineRangeMapping[], resultChanges: readonly LineRangeMapping[]): readonly LineRangeMapping[]; protected newMergeRangeData(): MergeRangeData; protected newLiveDiff(originalDocument: MonacoEditorModel, modifiedDocument: MonacoEditorModel): LiveDiff; protected newDocumentLineRangeMap(lineRangeMappings: readonly LineRangeMapping[]): DocumentLineRangeMap; protected newDocumentRangeMap(rangeMappings: readonly RangeMapping[]): DocumentRangeMap; protected getDiffComputingState(...liveDiffs: LiveDiff[]): DiffComputingState; } export declare const enum DiffComputingState { Initializing = 0, UpToDate = 1, Updating = 2 } export declare class MergeRangeData { readonly resultStateObservable: Observable.Settable; readonly isHandledObservable: Observable.Settable; } //# sourceMappingURL=merge-editor-model.d.ts.map