import { EnumListType } from './EnumListStyle'; import type { IRectangle } from './IRectangle'; import type { ILinkedList, ILinkedListNode } from './LinkedList'; import type { IRange } from './IRange'; import type { ISelectedElementGettable } from './ISelectedElementGettable'; import Delta from 'quill-delta-enhanced'; export declare const increaseId: () => number; export declare const isChinese: (word: string) => boolean; export declare const calListTypeFromChangeData: (changeData: string) => EnumListType; export declare const convertTo26: (num: number, upperCase?: boolean) => string; /** * 阿拉伯数字转中文汉字 */ export declare const numberToChinese: (num: number) => string; export declare const convertToRoman: (num: number, upperCase?: boolean) => string; export declare const calListItemTitle: (type: EnumListType, indent: number, index: number, parentTitle: string) => string; export declare enum EnumIntersectionType { both = 3, leftFirst = 5, rightFirst = 6 } /** * 判断两个范围是否存在交集 * @param start1 范围 1 的开始位置 * @param end1 范围 1 的结束位置 * @param start2 范围 2 的开始位置 * @param end2 范围 2 的结束位置 */ export declare const hasIntersection: (start1: number, end1: number, start2: number, end2: number) => boolean; /** * 用于将各种属性合并到一个 {[key:string]:Set} 对象中, * 主要是用于在当文档内容或选区变化时, 通知编辑器外部当前选区的格式变化情况 * @param attrs 需要合并的属性对象 * @param target 合并目标对象 */ export declare const collectAttributes: (attrs: { [key: string]: any; }, target: { [key: string]: Set; }) => void; export declare const findChildrenByRange: (children: T[], index: number, length: number, intersectionType?: EnumIntersectionType) => T[]; /** * 把 fragment 的 attributes 转换成 css 样式 */ export declare const convertFragmentAttributesToCssStyleText: (attr: any) => string; /** * 在 str 字符串中查找 searchTarget * @param searchTarget * @param str * @param caseSensitive */ export declare const searchTextString: (searchTarget: string, str: string, caseSensitive?: boolean) => number[]; /** * 判断一个点是否在某个矩形区域内 */ export declare const isPointInRectangle: (x: number, y: number, rect: IRectangle) => boolean; /** * 在一个 IRectangle 数组中找到 pos 所在的元素 * @param {boolean} yOrdered children 是否按 y 正序排列,false 则表示 children 按 x 正序排列 */ export declare const findRectChildInPos: (x: number, y: number, children: T[], yOrdered?: boolean) => T | null; /** * 在一个 IRectangle 数组中找到 posY 所在的元素 * @param {dichotomy} boolean 是否使用二分法查找 */ export declare const findRectChildInPosY: (y: number, children: T[], dichotomy?: boolean) => T | null; export declare const findChildInDocPos: (start: number, children: T[], dichotomy?: boolean) => T | null; export declare const findChildIndexInDocPos: (start: number, children: T[], dichotomy?: boolean) => number; export declare const hasModify: (delta: Delta) => boolean; /** * web 中 canvas 绘制水平和垂直线条的时候,如果坐标是整数,在高分屏上绘制出来的线条非常细 * 所以用这个方法可以把这类坐标值改为一个离他最近的 x.5 的值 */ export declare const findHalf: (origin: number, direction: 1 | -1) => number; declare type CanGetFormatItem = { start: number; getFormat: (range?: IRange) => { [key: string]: Set; }; } & ILinkedListNode; /** * 获取指定范围内元素的 attributes * @param priority 当 ranges 中某个 range 的 start 和 end 相同时,left 表示优先取 range.start 左边元素的 attributes,否则优先取右边元素的 attributes */ export declare const getFormat: (target: ILinkedList, ranges?: IRange[] | undefined, priority?: 'left' | 'right') => { [key: string]: Set; }; declare type CanFormatItem = { start: number; length: number; format: (attr: any, range?: IRange) => void; } & ILinkedListNode; export declare const format: , U extends CanFormatItem>(target: T, attr: any, range?: IRange | undefined) => { start: U; end: U; } | null; declare type CanClearFormatItem = { start: number; length: number; clearFormat: (range?: IRange) => void; } & ILinkedListNode; export declare const clearFormat: , U extends CanClearFormatItem>(target: T, range?: IRange | undefined) => { start: U; end: U; } | null; declare type CanDeleteItem = { start: number; length: number; delete: (range: IRange, forward: boolean) => void; } & ILinkedListNode; export declare const deleteRange: , U extends CanDeleteItem>(target: T, range: IRange, forward: boolean) => void; declare type CanToHtml = { start: number; length: number; toHtml: (range?: IRange) => string; } & ILinkedListNode; export declare const toHtml: , U extends CanToHtml>(target: T, range?: IRange | undefined) => string; declare type CanToText = { start: number; length: number; toText: (range?: IRange) => string; } & ILinkedListNode; export declare const toText: , U extends CanToText>(target: T, range?: IRange | undefined) => string; declare type CanGetSelectedElement = ISelectedElementGettable & { start: number; } & ILinkedListNode; export declare const getSelectedElement: (range: IRange, self: any, children: CanGetSelectedElement[]) => any[][]; export {};