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;