import { CardAttributes } from '@atlaskit/adf-schema';
import { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
import { SortOrder } from '../types';
export declare enum ContentType {
    NUMBER = 0,
    TEXT = 5,
    MENTION = 10,
    DATE = 15,
    STATUS = 20,
    LINK = 25
}
interface CompareOptions {
    getInlineCardTextFromStore(attrs: CardAttributes): string | null;
}
interface NodeMetaGenerator<Type, Value> {
    type: Type;
    value: Value;
}
type TextNodeMeta = NodeMetaGenerator<ContentType.TEXT, string>;
type NodeMeta = TextNodeMeta | NodeMetaGenerator<ContentType.NUMBER, number> | NodeMetaGenerator<ContentType.STATUS, string> | NodeMetaGenerator<ContentType.DATE, number> | NodeMetaGenerator<ContentType.MENTION, string> | NodeMetaGenerator<ContentType.LINK, string>;
type NormalizeTextParser = (text: string) => string | number | null;
export declare function createNormalizeTextParser(): NormalizeTextParser;
export declare function extractMetaFromTextNode(textNode: PMNode, normalizeTextParser: NormalizeTextParser): NodeMeta;
/**
 * Compare 2 prosemirror nodes and check if it's greater, equal or less than the other node
 * based on the sort order.
 *
 * @param {Node} nodeA
 * @param {Node} nodeB
 * @returns {(1 | 0 | -1)}
 *
 * For Ascending order:
 *    1  -> NodeA > NodeB
 *    0  -> NodeA === NodeB
 *    -1 -> Node A < NodeB
 * For Descending order:
 *   1  -> NodeA < NodeB
 *   0  -> NodeA === NodeB
 *   -1 -> Node A > NodeB
 *
 * If either node is empty:
 * The empty node is always treated as lower priority,
 * irrespective of the order.
 *
 * If no order is provided the method defaults to Ascending order,
 * like a regular JS sort method.
 */
export declare const createCompareNodes: (options: CompareOptions, order?: SortOrder) => Function;
export {};
