import * as WM from './type';
export declare const defaultAttribute = "data-mark-id";
/**
 * 获取随机字符串
 * @param num
 * @returns
 */
export declare const getUUID: (num: number) => string;
export declare const isText: (val: any) => boolean;
/**
 * 节流函数
 * @param fn
 * @param lazy
 */
export declare const throttle: (fn: () => void, lazy?: number) => () => void;
/**
 * 获取canvas的Y轴偏移量
 * @param canvas
 * @returns
 */
export declare const getCanvasTranslateY: (canvas: HTMLCanvasElement) => number;
/**
 * 获取当前文本元素的祖先元素信息用于定位
 * @param ele
 * @param parentEle
 * @returns
 */
export declare const getParentInfo: (ele: Text, parentEle: HTMLElement) => string;
/**
 * 获取父级元素下的所有文本
 * @param ele
 * @param parentEle
 * @returns
 */
export declare const getParentText: (ele: Text, parentEle: HTMLElement) => string;
/**
 * 创建canvas
 * @param parentEle
 * @returns
 */
export declare const createCanvas: (parentEle: HTMLElement, lazyLoad: boolean, zIndex?: number) => HTMLCanvasElement;
/**
 * 刷新标记
 * @param ctx
 * @param messages
 * @param container
 * @param options
 */
export declare const refreshMark: (ctx: CanvasRenderingContext2D, messages: WM.Message[], options: WM.WordMarkOptions) => void;
/**
 * 删除标记
 * @param ctx
 * @param data
 * @param messages
 * @param id
 * @param options
 */
export declare const deleteMark: (ctx: CanvasRenderingContext2D, data: WM.MarkData[], messages: WM.Message[], id: string, options: WM.WordMarkOptions) => void;
export declare const getActualRects: (ctx: CanvasRenderingContext2D, container: HTMLElement, range: Range, callback?: ((range: WM.Range) => void) | undefined) => WM.Range[];
/**
 * 高亮标记
 * @param ctx
 * @param data
 * @param messages
 * @param container
 * @param options
 */
export declare const render: (ctx: CanvasRenderingContext2D, data: WM.MarkData, messages: WM.Message[], container: HTMLElement, options: WM.WordMarkOptions) => void;
/**
 * 获取元素的属性值
 * @param el
 * @param attribute
 * @returns
 */
export declare const getAttribute: (el?: HTMLElement | null, attribute?: string) => string;
/**
 * 删除元素的属性
 * @param el
 * @param attribute
 * @returns
 */
export declare const removeAttribute: (el?: HTMLElement | null, attribute?: string) => void;
/**
 * 设置元素的属性值
 * @param el
 * @param attribute
 * @returns
 */
export declare const setAttribute: (el?: HTMLElement | null, attribute?: string, value?: string) => void;
/**
 * 自动标记数据
 * @param ele
 * @param text
 */
export declare function selectText(ele: HTMLElement, text: string): void;
/**
 * 获取锚点元素
 * @param ele
 * @param text
 * @returns
 */
export declare function getAnchorNode(ele: HTMLElement, text: string): {
    firstNode: {
        index: number;
        node: ChildNode;
    };
    endNode: {
        index: number;
        node: ChildNode;
    };
} | undefined;
/**
 * 处理标记数据的 attribute
 * @param data
 * @param attribute
 * @returns
 */
export declare const handleAttribute: (data: WM.MarkData, attribute?: string) => void;
/**
 * 获取标记数据
 * @param container
 * @param selection
 * @param options
 * @returns
 */
export declare const getMarkData: (container: HTMLElement, selection: Selection) => {
    id: string;
    startEle: Text;
    startOffset: number;
    startText: string;
    startBrother: string;
    startParentText: string;
    endEle: Text;
    endOffset: number;
    endText: string;
    endBrother: string;
    endParentText: string;
    text: string;
    message: string;
    single: boolean;
} | undefined;
/**
 * 对存储的数据进行处理
 * @param container
 * @param data
 * @param options
 */
export declare const initHandler: (container: HTMLElement, data: WM.MarkData[], options: WM.WordMarkOptions) => void;
/**
 * 初始化
 * @param canvas
 * @param data
 * @param messages
 * @param container
 * @param options
 */
export declare const init: (canvas: HTMLCanvasElement, data: WM.MarkData[], messages: WM.Message[], container: HTMLElement, options: WM.WordMarkOptions) => void;
