import { LineReplacement } from '../../../util/vs/editor/common/core/edits/lineEdit'; export declare namespace ResponseProcessor { /** * Controls when to emit fast cursor line changes. * - `off`: Never emit fast cursor line changes * - `additiveOnly`: Only emit when the edit on the cursor line is additive (only adds text) */ const enum EmitFastCursorLineChange { Off = "off", AdditiveOnly = "additiveOnly" } type DiffParams = { /** * Controls when to emit a fast cursor line change event. */ readonly emitFastCursorLineChange: EmitFastCursorLineChange; readonly nSignificantLinesToConverge: number; readonly nLinesToConverge: number; }; const DEFAULT_DIFF_PARAMS: DiffParams; /** * Maps the `emitFastCursorLineChange` setting value to the new type, * preserving backward compatibility with the old boolean type. */ function mapEmitFastCursorLineChange(value: boolean | EmitFastCursorLineChange): EmitFastCursorLineChange; /** * * @param originalLines * @param modifiedLines * @param cursorOriginalLinesOffset offset of cursor within original lines */ function diff(originalLines: string[], modifiedLines: AsyncIterable, cursorOriginalLinesOffset: number, params: DiffParams): AsyncIterable; /** * Checks if a line edit is additive (only adds text without removing any). * An edit is additive if the original line is a subsequence of the new line, * meaning all characters from the original appear in the new line in the same order. * * Examples: * - "function fib() {" → "function fib(n: number) {" ✓ (additive) * - "hello world" → "hello" ✗ (not additive, removes " world") * - "abc" → "aXbYcZ" ✓ (additive) */ function isAdditiveEdit(originalLine: string, newLine: string): boolean; } export declare class ArrayMap { private map; /** * Appends a value to the array of values for the given key. */ add(key: K, value: V): void; /** * Gets the array of values for the given key. * Returns an empty array if the key does not exist. */ get(key: K): V[]; } //# sourceMappingURL=responseProcessor.d.ts.map