import { Disposable, Emitter, Event } from '@opensumi/ide-core-common'; import { ICodeEditor, IModelDecorationOptions, IModelDeltaDecoration, IPosition, IRange } from '@opensumi/ide-monaco'; import { UndoRedoGroup } from '@opensumi/monaco-editor-core/esm/vs/platform/undoRedo/common/undoRedo'; export interface IDecorationSerializableState { startPosition: IPosition; endPosition: IPosition; len: number; } interface IDeltaData extends IModelDeltaDecoration { length: number; dispose(): void; } export interface IEnhanceModelDeltaDecoration extends IDeltaData { id: string; decorationId: string; isHidden: boolean; readonly editorDecoration: IModelDeltaDecoration; show(): void; hide(): void; resume(): void; getRange(): IRange; setRange(newRange: IRange): void; group?: UndoRedoGroup; setGroup(group: UndoRedoGroup): void; } export interface IDeltaDecorationsOptions { id: string; editorDecoration: IModelDeltaDecoration; codeEditor: ICodeEditor; deltaData: Partial; isHidden?: boolean; group?: UndoRedoGroup; } export declare class DeltaDecorations implements IEnhanceModelDeltaDecoration { protected readonly metadata: IDeltaDecorationsOptions; length: number; range: IRange; options: IModelDecorationOptions; private resumeRange; private _decorationId; private _group; private _hidden; get isHidden(): boolean; get codeEditor(): ICodeEditor; get deltaData(): Partial; get id(): string; get decorationId(): string; get editorDecoration(): IModelDeltaDecoration; get group(): UndoRedoGroup; constructor(metadata: IDeltaDecorationsOptions); setGroup(group: any): void; setRange(newRange: IRange): void; getRange(): IRange; dispose(): void; show(): void; hide(): void; resume(): void; } export declare class EnhanceDecorationsCollection extends Disposable { private readonly codeEditor; private deltaDecorations; protected readonly _onDidDecorationsChange: Emitter; readonly onDidDecorationsChange: Event; private get model(); constructor(codeEditor: ICodeEditor); /** * 每次在文档变更时获取新的 decoration 位置 */ private flush; private delete; protected createDecorations(metaData: IDeltaDecorationsOptions): T; set(decorations: (IModelDeltaDecoration & Partial>)[]): void; getDecorations(): T[]; getDecorationByGroup(group: UndoRedoGroup): T | undefined; getDecorationByLineNumber(lineNumber: number): T | undefined; clear(): void; } export {}; //# sourceMappingURL=enhanceDecorationsCollection.d.ts.map