import { Position } from "codemirror";
import { IRemoteSelectionManagerOptions } from "./IRemoteSelectionManagerOptions";
import { RemoteSelection } from "./RemoteSelection";
/**
 * The RemoteSelectionManager renders remote users selections into the
 * editor using the editor's built-in TextMarker mechanism.
 */
export declare class RemoteSelectionManager {
    /**
     * Creates a new RemoteSelectionManager with the specified options.
     *
     * @param options
     *   Ths options that configure the RemoteSelectionManager.
     */
    constructor(options: IRemoteSelectionManagerOptions);
    /**
     * Adds a new remote selection with a unique id and the specified color.
     *
     * @param id
     *   The unique id of the selection.
     * @param color
     *   The color to render the selection with.
     */
    addSelection(id: string, color: string): RemoteSelection;
    /**
     * Removes an existing remote selection from the editor.
     *
     * @param id
     *   The unique id of the selection.
     */
    removeSelection(id: string): void;
    /**
     * Sets the selection using zero-based text indices.
     *
     * @param id
     *   The unique id of the selection.
     * @param start
     *   The starting index of the selection.
     * @param end
     *   The ending index of the selection.
     */
    setSelectionIndices(id: string, start: number, end: number): void;
    /**
     * Sets the selection using the CodeMirror Editor's Position
     * (line numbers and characters) location concept.
     *
     * @param id
     *   The unique id of the selection.
     * @param start
     *   The starting position of the selection.
     * @param end
     *   The ending position of the selection.
     */
    setSelectionPositions(id: string, start: Position, end: Position): void;
    /**
     * Shows the specified selection, if it is currently hidden.
     *
     * @param id
     *   The unique id of the selection.
     */
    showSelection(id: string): void;
    /**
     * Hides the specified selection, if it is currently shown.
     *
     * @param id
     *   The unique id of the selection.
     */
    hideSelection(id: string): void;
}
