import { ApiNode } from "./apiNode"; import { NodeFilter } from "./filter/filter"; import { LayoutGraph } from "./layoutGraph"; import { NodeId } from "./node"; import { PropertyKey } from "./properties"; import { Sort } from "./sort/sort"; /** * e.g. * * ``` * api.line({ * sort: (a, b) => a.properties.seasonNumber - b.properties.seasonNumber, * sort: 'seasonNumber', // same as above * reverse: true, // sort descending * }) * * api.ego({ * filter: (node) => node.properties.Level === 1, // Find the root node[s] * }) * * const rootNodes = // nodes that are the root node[s] * api.ego ({ * nodes: rootNodes, * nodes: rootNodes.map(n => n.id) // same as above * }) * ``` */ export interface NodeFilterOptions { sort?: Sort | PropertyKey; filter?: NodeFilter; nodes?: ApiNode[] | NodeId[]; reverse?: boolean; } /** * Return a list of Nodes by applying the options in order. * - nodes (optional, a list of NodeId or Node, default: all nodes) * - filter (optional, (node: Node) => boolean, default: no filter) * - sort (optional, (nodeA: Node, nodeB: Node) => number, default: no sort) * - reverse (optional, boolean, default: false) * If no options are provided, all nodes are returned. */ export declare function getNodesWithOptions(view: LayoutGraph, options: NodeFilterOptions): ApiNode[];