import * as monaco from 'monaco-editor'; import { ValidAnnotatedEditOperation } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model'; /** * Exctract ranges between startToken and endToken */ export declare function extractRangesFromTokens(editor: monaco.editor.ICodeEditor, startToken: string, endToken: string, isRegex?: boolean): monaco.Range[]; type ErrorHandler = (editor: monaco.editor.ICodeEditor, firstForbiddenOperation: ValidAnnotatedEditOperation) => void; export interface LockCodeOptions { /** * Error message displayed in a tooltip when an edit failed */ onError?: ErrorHandler; /** * Allows edit coming from a specific source */ allowChangeFromSources?: string[]; /** * Locked ranges */ getLockedRanges: () => monaco.Range[]; /** * if true: when an edit block comes, either all the edit are applied or none */ transactionMode?: boolean; /** * Should undo/redo be ignored */ allowUndoRedo?: boolean; } export declare function lockCodeRanges(editor: monaco.editor.ICodeEditor, { onError, allowChangeFromSources, getLockedRanges, transactionMode, allowUndoRedo }: LockCodeOptions): monaco.IDisposable; export interface LockCodeFromDecorationOptions { /** * Error message displayed in a tooltip when an edit failed */ errorMessage?: string; /** * Allows edit coming from a specific source */ allowChangeFromSources?: string[]; /** * Only take some decorations into account */ decorationFilter: (decoration: monaco.editor.IModelDecoration) => boolean; /** * if true: when an edit block comes, either all the edit are applied or none */ transactionMode?: boolean; /** * Should undo/redo be ignored */ allowUndoRedo?: boolean; } export declare function lockCodeWithDecoration(editor: monaco.editor.ICodeEditor, lockOptions: LockCodeFromDecorationOptions): monaco.IDisposable; export declare function lockCodeWithoutDecoration(editor: monaco.editor.ICodeEditor, lockOptions: LockCodeFromDecorationOptions): monaco.IDisposable; export declare function hideCodeWithoutDecoration(editor: monaco.editor.ICodeEditor, decorationFilter: (decoration: monaco.editor.IModelDecoration) => boolean): monaco.IDisposable; /** * Collapse everything from ranges */ export declare function collapseCodeSectionsFromRanges(editor: monaco.editor.ICodeEditor, ranges: monaco.IRange[]): Promise; /** * Collapse everything between startToken and endToken */ export declare function collapseCodeSections(editor: monaco.editor.ICodeEditor, startToken: string, endToken: string, isRegex?: boolean): Promise; interface IDecorationProvider { provideDecorations(model: monaco.editor.ITextModel): monaco.editor.IModelDeltaDecoration[]; } export declare function registerTextDecorationProvider(provider: IDecorationProvider): monaco.IDisposable; export declare function runOnAllEditors(cb: (editor: monaco.editor.ICodeEditor) => monaco.IDisposable): monaco.IDisposable; export declare function preventAlwaysConsumeTouchEvent(editor: monaco.editor.ICodeEditor): void; export declare function mapClipboard(editor: monaco.editor.ICodeEditor, { toClipboard, fromClipboard }: { toClipboard: (data: string) => string; fromClipboard: (data: string) => string; }): monaco.IDisposable; export {};