/** * Query Builder — fluent API for querying relational nodes and edges * with Indigenous protocol awareness. */ import type { RelationalNode, RelationalEdge, Relation } from '@medicine-wheel/ontology-core'; import type { NodeFilter, EdgeFilter, RelationFilter, QuerySort, QueryPagination, QueryResult } from './types.js'; /** Apply a NodeFilter to an array of nodes */ export declare function filterNodes(nodes: RelationalNode[], filter: NodeFilter): RelationalNode[]; /** Apply an EdgeFilter to an array of edges */ export declare function filterEdges(edges: RelationalEdge[], filter: EdgeFilter): RelationalEdge[]; /** Apply sorting to nodes */ export declare function sortNodes(nodes: RelationalNode[], sort: QuerySort): RelationalNode[]; /** Apply pagination */ export declare function paginate(items: T[], pagination: QueryPagination): QueryResult; /** Filter nodes that have relations to a specific node */ export declare function filterByRelation(nodes: RelationalNode[], edges: RelationalEdge[], targetNodeId: string): RelationalNode[]; /** Count relations per node */ export declare function relationCounts(nodes: RelationalNode[], edges: RelationalEdge[]): Map; /** Filter nodes with minimum relation count */ export declare function filterByMinRelations(nodes: RelationalNode[], edges: RelationalEdge[], minRelations: number): RelationalNode[]; /** Apply a RelationFilter to first-class Relation objects */ export declare function filterRelations(relations: Relation[], filter: RelationFilter): Relation[]; //# sourceMappingURL=query.d.ts.map