import type { NobjcObject } from "objc-js";
import type { _GKGraph } from "./GKGraph.js";
import type { _GKGridGraphNode } from "./GKGridGraphNode.js";
export declare class _GKGridGraph extends _GKGraph {
    static alloc(): _GKGridGraph;
    static new(): _GKGridGraph;
    init(): _GKGridGraph;
    /**
     * Creates a bidirectional graph connecting all of the points on a 2D grid @param position starting position in the grid @param width how wide the grid will be; the grid will continue along the positive X axis from the starting x value @param height how high the grid will be; the grid will continue along the positive Y axis from the starting y value @param diagonalsAllowed should diagonal connections between nodes be made? If not, only cardinal directions will be connected.
     */
    static graphFromGridStartingAt$width$height$diagonalsAllowed$(position: NobjcObject, width: number, height: number, diagonalsAllowed: boolean): _GKGridGraph;
    /**
     * Creates a bidirectional graph connecting all of the points on a 2D grid @param position starting position in the grid @param width how wide the grid will be; the grid will continue along the positive X axis from the starting x value @param height how high the grid will be; the grid will continue along the positive Y axis from the starting y value @param diagonalsAllowed should diagonal connections between nodes be made? If not, only cardinal directions will be connected. @param nodeClass the class of the nodes that this graph should create. Must descend from GKGridGraphNode
     */
    static graphFromGridStartingAt$width$height$diagonalsAllowed$nodeClass$(position: NobjcObject, width: number, height: number, diagonalsAllowed: boolean, nodeClass: NobjcObject): _GKGridGraph;
    initFromGridStartingAt$width$height$diagonalsAllowed$(position: NobjcObject, width: number, height: number, diagonalsAllowed: boolean): _GKGridGraph;
    initFromGridStartingAt$width$height$diagonalsAllowed$nodeClass$(position: NobjcObject, width: number, height: number, diagonalsAllowed: boolean, nodeClass: NobjcObject): _GKGridGraph;
    /**
     * Returns the GKGridGraphNode at the indicated X and Y coordinate Returns nil if it is outside the bounds of minCoordinates and maxCoordinates @param position starting position in the grid
     */
    nodeAtGridPosition$(position: NobjcObject): NobjcObject | null;
    /**
     * Connects the given GKGridGraphNode to this graph by connecting it to it's adjacent nodes on the grid Input node must have coordinates within the rectangle specified by minCoordinates and maxCoordinates @param node the node to be connected
     */
    connectNodeToAdjacentNodes$(node: _GKGridGraphNode): void;
    /** Returns the class of the specified generic index */
    classForGenericArgumentAtIndex$(index: number): NobjcObject;
    /** The minimum X and Y coordinates of the 2D Cartesian grid this graph represents */
    gridOrigin(): NobjcObject;
    /** The width of the 2D Cartesian grid this graph represents */
    gridWidth(): number;
    /** The height of the 2D Cartesian grid this graph represents */
    gridHeight(): number;
    /**
     * Returns YES if this grid is also connected via it's diagonal directions rather than only it's cardinal directions
     */
    diagonalsAllowed(): boolean;
}
