import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { _GKGraphNode } from "./GKGraphNode.js";
export declare class _GKGraph extends _NSObject {
    static alloc(): _GKGraph;
    static new(): _GKGraph;
    init(): _GKGraph;
    /**
     * Creates a graph with the provided array of nodes. @params nodes the nodes to create the graph with
     */
    static graphWithNodes$(nodes: _NSArray): _GKGraph;
    initWithNodes$(nodes: _NSArray): _GKGraph;
    /**
     * Connects the node to this graph via the lowest cost node to reach in this graph @param node the node to connect @param bidirectional should the connection be bidirectional? Otherwise it is one way connected into the graph
     */
    connectNodeToLowestCostNode$bidirectional$(node: _GKGraphNode, bidirectional: boolean): void;
    /**
     * Removes nodes from this graph. All connections starting and/or ending with this node are removed. @param nodes an array of nodes to be removed
     */
    removeNodes$(nodes: _NSArray): void;
    /**
     * Adds nodes to this graph. No new connections are added. If the node already exists in this graph this does nothing. @param nodes and array of nodes to be added
     */
    addNodes$(nodes: _NSArray): void;
    /**
     * Attempts to find the optimal path between the two nodes indicated. If such a path exists, it is returned in start to end order. If it doesn't exist, the array returned will be empty. Asserts if neither of these nodes are in this graph. Use [GKGraphNode findPathFromNode:] instead. @param startNode node to start pathing from @param endNode goal node of the pathfinding attempt
     */
    findPathFromNode$toNode$(startNode: _GKGraphNode, endNode: _GKGraphNode): _NSArray;
    /** The list of nodes in this graph */
    nodes(): _NSArray | null;
}
export interface _GKGraph extends _NSCopying, _NSSecureCoding {
}
