export declare const NODE = "node";
export declare const DEFAULT_NODE_SIZE = 75;
export declare enum NewLayerPosition {
    TOP = 0,
    BOTTOM = 1
}
export interface NodeSizeProp {
    $nodeSize?: number;
}
/**
 * Node metadata
 */
export interface NodeMeta {
    /**
     * Alternative display label
     */
    label?: string;
    /**
     * Font size to use
     */
    label_size?: number;
    /**
     * Tooltip to display on node hover
     */
    tooltip?: string | Record<string, string>;
    /**
     * Override the wrap text setting per-node
     */
    wrap_text?: boolean;
}
/**
 * Base NodeHierarchyBuilder Node representation - can be accepted as an input
 */
export interface Node {
    meta?: NodeMeta;
    name: string;
}
/**
 * Internal node representation
 */
export interface NodeItem extends Node {
    /**
     * Internal ID to identify the node
     */
    id: string;
    /**
     * Selection status based on search
     */
    selected: boolean;
}
/**
 * Node representation with current index within its layer attached, used when sending data using drag&drop
 */
export interface DragItem extends NodeItem {
    index: number;
}
/**
 * Layer representation with an internal ID
 */
export interface LayerItem {
    id: string;
    /** Custom label */
    label?: string;
    nodes: NodeItem[];
}
/**
 * Parse a list of lists of nodes into Objects with IDs for easier internal handling
 *
 * @param nodes nodes to parse
 */
export declare function parseNodes(nodes: Array<Array<string | Node>>): LayerItem[];
/**
 * Parse list of layer objects back into a list of lists of nodes
 *
 * @param layerItems layer items to parse
 */
export declare function parseLayerItems(layerItems: LayerItem[], returnStrings: true): Array<Array<string>>;
export declare function parseLayerItems(layerItems: LayerItem[], returnStrings: false): Array<Array<Node>>;
/**
 * Check whether a given string matches a given query.
 *
 * @param string string to check against the query
 * @param query query to check the string against
 */
export declare function matchesQuery(string: any, query: string): boolean;
/**
 * Check if a given element is currently in view, given its inside a scrollable container.
 *
 * @param element element to check
 * @param scrollableElement scrollable container element
 */
export declare function isInView(element: HTMLDivElement, scrollableElement: HTMLDivElement): boolean;
//# sourceMappingURL=shared.d.ts.map