import * as monaco from 'monaco-editor';
import { SynchronizedIntervals } from './intervals';
import { Interval, Prefer } from './types';
/**
 * @warnings
 * For correct behavior, all models must have a single character at the end of the line.
 * This can be set with  `ITextModel.setEOL (monaco.editor.EndOfLineSequence.LF)`
 */
export declare class ReadonlyFeature {
    editor: monaco.editor.IStandaloneCodeEditor;
    intervals: ReturnType<typeof SynchronizedIntervals>;
    disposables: monaco.IDisposable[];
    /**
     * Flag for `excludeIntervals`
     */
    prefer: Prefer;
    lastPrefer: Prefer;
    constructor(editor: monaco.editor.IStandaloneCodeEditor, isMethod: boolean);
    enable(): void;
    dispose(): void;
    exclude(startLine: number, startColumn: number, endLine: number, endColumn: number): void;
    /**
     * Linked to ICodeEditor.onDidChangeCursorPosition event.
     */
    onCursor: (...args: any[]) => any;
    onRectangleSelectionStart: (...args: any[]) => any;
    onRectangleSelectionStop: (...args: any[]) => any;
    /**
     * Linked to ICodeEditor.onKeyDown event.
     */
    onKey: (...args: any[]) => any;
    getApprovedSelections(): monaco.Selection[];
    getSelections(): Interval[];
    getOffsetAt: (...args: any[]) => any;
}
