export declare type ListElement = HTMLOListElement | HTMLUListElement; export declare enum ListType { ORDERED = "ORDERED", UNORDERED = "UNORDERED" } export interface ListOperationDelegate { decorateList?: (list: ListElement) => void; } export declare const LIST_TYPES_BY_TAG_NAME: { [key: string]: ListType; }; export declare const TAG_NAMES_BY_LIST_TYPE: { [K in ListType]: 'ol' | 'ul'; }; export declare function isListElement(node: Node | null): node is ListElement; export declare function isOrderedListElement(node: Node): node is HTMLOListElement; export declare function getListType(element: ListElement): ListType; export declare function isListItemElement(node: Node | null): node is HTMLLIElement; export declare function createList(document: Document, type: ListType, delegate?: ListOperationDelegate): ListElement; export declare function addBulletedListInRange(container: Node, range: Range, type: ListType, delegate?: ListOperationDelegate): Range; export declare function indentListItemsInRange(container: Node, range: Range, delegate?: ListOperationDelegate): Range; export declare function outdentListItemsInRange(container: Node, range: Range): Range; export declare function canMergeList(list: ListElement): boolean; /** * Merge list with its next sibling if it's a list too (of the same type). * @param list */ export declare function maybeMergeList(list: ListElement): void;