import { JQ } from 'mdui.jq/es/JQ';
import 'mdui.jq/es/methods/is';
import 'mdui.jq/es/methods/last';
import 'mdui.jq/es/methods/parent';
import 'mdui.jq/es/methods/parentsUntil';
import CommonAbstract from '../abstracts/commonAbstract';
/**
 * selection range API
 */
declare class Selection extends CommonAbstract {
    /**
     * 当前选区
     */
    private currentRange;
    /**
     * 获取 range 对象
     */
    getRange(): Range | undefined;
    /**
     * 保存选区
     * @param range 指定的选取。若未指定，则获取当前选区并保存
     */
    saveRange(range?: Range): void;
    /**
     * 折叠选区
     * @param toStart
     */
    collapseRange(toStart?: boolean): void;
    /**
     * 获取选中区域的文字
     */
    getText(): string;
    /**
     * 获取选区元素的 JQ 对象
     * @param range
     */
    getContainerElem(range?: Range): JQ;
    /**
     * 获取当前选区的最顶级元素的 JQ 对象
     * @param range
     */
    getRootElem(range?: Range): JQ;
    /**
     * 判断选区是否为空
     */
    isEmpty(): boolean;
    /**
     * 恢复选区
     */
    restore(): void;
    /**
     * 创建一个空白（即 &#8203 字符）选区
     * @param tag 标签名，非 webkit 浏览器不支持插入纯文本，需要指定包裹空白元素的标签
     */
    createEmptyRange(tag?: string): void;
    /**
     * 根据 JQ 对象设置选区
     * @param $elem
     * @param toStart   true 光标在开始位置，false 光标在结束位置
     * @param isContent 是否选中 elem 的内容
     */
    createRangeByElem($elem: JQ, toStart?: boolean, isContent?: boolean): void;
}
export default Selection;
