export declare type GraphNode = string; export interface IGraphEdge { from: GraphNode; to: GraphNode; cost: number; } export declare type GoalFunction = (_: GraphNode) => boolean; export declare type Goal = GraphNode | GoalFunction; export interface IAstarOptions { exitArcsForNodeId?: (f: GraphNode) => T[]; h?: (f: GraphNode, t: GraphNode) => number; } export interface IGraphPath { cost: number; path: T[]; } export declare class Astar { constructor(customCallbackFuncs?: IAstarOptions); h(from: GraphNode, to: GraphNode): number; lookupH(from: GraphNode, to: GraphNode): Promise; exactMatchGoalFunc(goalNodeId: GraphNode): (testNodeId: string) => Promise; cleanGoalFunc(goalOrGoalFunc: Goal): (testNodeId: string) => Promise; exitArcsForNodeId(nodeId: GraphNode): T[]; lookupExitArcsForNodeId(nodeId: GraphNode): Promise; private findPathGenerator(startNodeId, goalOrGoalFunc); findPath(startNodeId: GraphNode, goalFunc: Goal): Promise>; static Debug: () => typeof Astar; }