import { IKeyboardEvent } from "../../../../../base/browser/keyboardEvent.js"; import { Event } from "../../../../../base/common/event.js"; import { Disposable } from "../../../../../base/common/lifecycle.js"; import { OperatingSystem } from "../../../../../base/common/platform.js"; import { Position } from "../../../../common/core/position.js"; import { Selection } from "../../../../common/core/selection.js"; import { IAccessibilityService } from "../../../../../platform/accessibility/common/accessibility.service.js"; import { ILogService } from "../../../../../platform/log/common/log.service.js"; import { ClipboardStoredMetadata, IClipboardCopyEvent, IClipboardPasteEvent } from "../clipboardUtils.js"; import { ITextAreaWrapper, ITypeData, TextAreaState } from "./textAreaEditContextState.js"; import { ViewContext } from "../../../../common/viewModel/viewContext.js"; export declare namespace TextAreaSyntethicEvents { const Tap = "-monaco-textarea-synthetic-tap"; } export interface ICompositionData { data: string; } export interface IPasteData { text: string; metadata: ClipboardStoredMetadata | null; } export interface ITextAreaInputHost { readonly context: ViewContext; getScreenReaderContent(): TextAreaState; deduceModelPosition(viewAnchorPosition: Position, deltaOffset: number, lineFeedCnt: number): Position; } export interface ICompositionStartEvent { data: string; } export interface ICompleteTextAreaWrapper extends ITextAreaWrapper { readonly onKeyDown: Event; readonly onKeyPress: Event; readonly onKeyUp: Event; readonly onCompositionStart: Event; readonly onCompositionUpdate: Event; readonly onCompositionEnd: Event; readonly onBeforeInput: Event; readonly onInput: Event; readonly onCut: Event; readonly onCopy: Event; readonly onPaste: Event; readonly onFocus: Event; readonly onBlur: Event; readonly onSyntheticTap: Event; readonly ownerDocument: Document; setIgnoreSelectionChangeTime(reason: string): void; getIgnoreSelectionChangeTime(): number; resetSelectionChangeTime(): void; hasFocus(): boolean; } export interface IBrowser { isAndroid: boolean; isFirefox: boolean; isChrome: boolean; isSafari: boolean; } /** * Writes screen reader content to the textarea and is able to analyze its input events to generate: * - onCut * - onPaste * - onType * * Composition events are generated for presentation purposes (composition input is reflected in onType). */ export declare class TextAreaInput extends Disposable { private readonly _host; private readonly _textArea; private readonly _OS; private readonly _browser; private readonly _accessibilityService; private readonly _logService; private _onFocus; readonly onFocus: Event; private _onBlur; readonly onBlur: Event; private _onKeyDown; readonly onKeyDown: Event; private _onKeyUp; readonly onKeyUp: Event; private _onCut; readonly onCut: Event; private _onPaste; readonly onPaste: Event; private _onWillCopy; readonly onWillCopy: Event; private _onWillCut; readonly onWillCut: Event; private _onWillPaste; readonly onWillPaste: Event; private _onType; readonly onType: Event; private _onCompositionStart; readonly onCompositionStart: Event; private _onCompositionUpdate; readonly onCompositionUpdate: Event; private _onCompositionEnd; readonly onCompositionEnd: Event; private _onSelectionChangeRequest; readonly onSelectionChangeRequest: Event; private readonly _asyncTriggerCut; private readonly _asyncFocusGainWriteScreenReaderContent; private _textAreaState; get textAreaState(): TextAreaState; private _selectionChangeListener; private _hasFocus; private _currentComposition; constructor(_host: ITextAreaInputHost, _textArea: ICompleteTextAreaWrapper, _OS: OperatingSystem, _browser: IBrowser, _accessibilityService: IAccessibilityService, _logService: ILogService); _initializeFromTest(): void; private _installSelectionChangeListener; dispose(): void; focusTextArea(): void; isFocused(): boolean; refreshFocusState(): void; private _setHasFocus; private _setAndWriteTextAreaState; writeNativeTextAreaContent(reason: string): void; } export declare class TextAreaWrapper extends Disposable implements ICompleteTextAreaWrapper { private readonly _actual; readonly onKeyDown: Event; readonly onKeyPress: Event; readonly onKeyUp: Event; readonly onCompositionStart: Event; readonly onCompositionUpdate: Event; readonly onCompositionEnd: Event; readonly onBeforeInput: Event; readonly onInput: Event; readonly onCut: Event; readonly onCopy: Event; readonly onPaste: Event; readonly onFocus: Event; readonly onBlur: Event; get ownerDocument(): Document; private _onSyntheticTap; readonly onSyntheticTap: Event; private _ignoreSelectionChangeTime; constructor(_actual: HTMLTextAreaElement); hasFocus(): boolean; setIgnoreSelectionChangeTime(reason: string): void; getIgnoreSelectionChangeTime(): number; resetSelectionChangeTime(): void; getValue(): string; setValue(reason: string, value: string): void; getSelectionStart(): number; getSelectionEnd(): number; setSelectionRange(reason: string, selectionStart: number, selectionEnd: number): void; }