import { Disposable, IDisposable } from '../../base/common/lifecycle.js'; import { IObservable, ITransaction } from '../../base/common/observable.js'; import { EditorOption, FindComputedEditorOptionValueById } from '../common/config/editorOptions.js'; import { Position } from '../common/core/position.js'; import { Selection } from '../common/core/selection.js'; import { ICursorSelectionChangedEvent } from '../common/cursorEvents.js'; import { IModelDeltaDecoration, ITextModel } from '../common/model.js'; import { IModelContentChangedEvent } from '../common/textModelEvents.js'; import { ICodeEditor, IOverlayWidgetPosition } from './editorBrowser.js'; /** * Returns a facade for the code editor that provides observables for various states/events. */ export declare function observableCodeEditor(editor: ICodeEditor): ObservableCodeEditor; export declare class ObservableCodeEditor extends Disposable { readonly editor: ICodeEditor; private static readonly _map; /** * Make sure that editor is not disposed yet! */ static get(editor: ICodeEditor): ObservableCodeEditor; private _updateCounter; private _currentTransaction; private _beginUpdate; private _endUpdate; private constructor(); forceUpdate(): void; forceUpdate(cb: (tx: ITransaction) => T): T; private _forceUpdate; private readonly _model; readonly model: IObservable; readonly isReadonly: IObservable; private readonly _versionId; readonly versionId: IObservable; private readonly _selections; readonly selections: IObservable; readonly positions: IObservable; readonly isFocused: IObservable; readonly isTextFocused: IObservable; readonly inComposition: IObservable; readonly value: import("../../base/common/observable.js").ISettableObservable; readonly valueIsEmpty: IObservable; readonly cursorSelection: IObservable; readonly cursorPosition: IObservable; readonly cursorLineNumber: IObservable; readonly onDidType: import("../../base/common/observable.js").IObservableSignal; readonly scrollTop: IObservable; readonly scrollLeft: IObservable; readonly layoutInfo: IObservable; readonly layoutInfoContentLeft: IObservable; readonly layoutInfoDecorationsLeft: IObservable; readonly contentWidth: IObservable; getOption(id: T): IObservable>; setDecorations(decorations: IObservable): IDisposable; private _overlayWidgetCounter; createOverlayWidget(widget: IObservableOverlayWidget): IDisposable; } interface IObservableOverlayWidget { get domNode(): HTMLElement; readonly position: IObservable; readonly minContentWidthInPx: IObservable; get allowEditorOverflow(): boolean; } export {};