import { BlueprintNodeTemplate, INodeExecutor, BlueprintNode, ExecutionResult } from '@esengine/blueprint';

/**
 * @zh 寻路系统蓝图节点
 * @en Pathfinding System Blueprint Nodes
 */

declare const FindPathTemplate: BlueprintNodeTemplate;
declare class FindPathExecutor implements INodeExecutor {
    execute(node: BlueprintNode, context: unknown): ExecutionResult;
}
declare const FindPathSmoothTemplate: BlueprintNodeTemplate;
declare class FindPathSmoothExecutor implements INodeExecutor {
    execute(node: BlueprintNode, context: unknown): ExecutionResult;
}
declare const IsWalkableTemplate: BlueprintNodeTemplate;
declare class IsWalkableExecutor implements INodeExecutor {
    execute(node: BlueprintNode, context: unknown): ExecutionResult;
}
declare const GetPathLengthTemplate: BlueprintNodeTemplate;
declare class GetPathLengthExecutor implements INodeExecutor {
    execute(node: BlueprintNode, context: unknown): ExecutionResult;
}
declare const GetPathDistanceTemplate: BlueprintNodeTemplate;
declare class GetPathDistanceExecutor implements INodeExecutor {
    execute(node: BlueprintNode, context: unknown): ExecutionResult;
}
declare const GetPathPointTemplate: BlueprintNodeTemplate;
declare class GetPathPointExecutor implements INodeExecutor {
    execute(node: BlueprintNode, context: unknown): ExecutionResult;
}
declare const MoveAlongPathTemplate: BlueprintNodeTemplate;
declare class MoveAlongPathExecutor implements INodeExecutor {
    execute(node: BlueprintNode, context: unknown): ExecutionResult;
}
declare const HasLineOfSightTemplate: BlueprintNodeTemplate;
declare class HasLineOfSightExecutor implements INodeExecutor {
    execute(node: BlueprintNode, context: unknown): ExecutionResult;
}
declare const PathfindingNodeDefinitions: {
    templates: BlueprintNodeTemplate[];
    executors: Map<string, INodeExecutor>;
};

/**
 * @zh 增量寻路蓝图节点
 * @en Incremental Pathfinding Blueprint Nodes
 */

/**
 * @zh 请求异步寻路节点模板
 * @en Request async pathfinding node template
 */
declare const RequestPathAsyncTemplate: BlueprintNodeTemplate;
/**
 * @zh 请求异步寻路执行器
 * @en Request async pathfinding executor
 */
declare class RequestPathAsyncExecutor implements INodeExecutor {
    execute(node: BlueprintNode, context: unknown): ExecutionResult;
}
/**
 * @zh 推进寻路一步节点模板
 * @en Step pathfinding node template
 */
declare const StepPathTemplate: BlueprintNodeTemplate;
/**
 * @zh 推进寻路一步执行器
 * @en Step pathfinding executor
 */
declare class StepPathExecutor implements INodeExecutor {
    execute(node: BlueprintNode, context: unknown): ExecutionResult;
}
/**
 * @zh 获取寻路进度节点模板
 * @en Get path progress node template
 */
declare const GetPathProgressTemplate: BlueprintNodeTemplate;
/**
 * @zh 获取寻路进度执行器
 * @en Get path progress executor
 */
declare class GetPathProgressExecutor implements INodeExecutor {
    execute(node: BlueprintNode, context: unknown): ExecutionResult;
}
/**
 * @zh 获取寻路结果节点模板
 * @en Get path result node template
 */
declare const GetPathResultTemplate: BlueprintNodeTemplate;
/**
 * @zh 获取寻路结果执行器
 * @en Get path result executor
 */
declare class GetPathResultExecutor implements INodeExecutor {
    execute(node: BlueprintNode, context: unknown): ExecutionResult;
}
/**
 * @zh 取消寻路节点模板
 * @en Cancel path node template
 */
declare const CancelPathTemplate: BlueprintNodeTemplate;
/**
 * @zh 取消寻路执行器
 * @en Cancel path executor
 */
declare class CancelPathExecutor implements INodeExecutor {
    execute(node: BlueprintNode, context: unknown): ExecutionResult;
}
/**
 * @zh 设置障碍物节点模板
 * @en Set obstacle node template
 */
declare const SetObstacleTemplate: BlueprintNodeTemplate;
/**
 * @zh 设置障碍物执行器
 * @en Set obstacle executor
 */
declare class SetObstacleExecutor implements INodeExecutor {
    execute(node: BlueprintNode, context: unknown): ExecutionResult;
}
/**
 * @zh 检查路径是否完成节点模板
 * @en Check if path is complete node template
 */
declare const IsPathCompleteTemplate: BlueprintNodeTemplate;
/**
 * @zh 检查路径是否完成执行器
 * @en Check if path is complete executor
 */
declare class IsPathCompleteExecutor implements INodeExecutor {
    execute(node: BlueprintNode, context: unknown): ExecutionResult;
}
/**
 * @zh 增量寻路节点定义集合
 * @en Incremental pathfinding node definitions collection
 */
declare const IncrementalPathfindingNodeDefinitions: {
    templates: BlueprintNodeTemplate[];
    executors: Map<string, INodeExecutor>;
};

export { CancelPathExecutor, CancelPathTemplate, FindPathExecutor, FindPathSmoothExecutor, FindPathSmoothTemplate, FindPathTemplate, GetPathDistanceExecutor, GetPathDistanceTemplate, GetPathLengthExecutor, GetPathLengthTemplate, GetPathPointExecutor, GetPathPointTemplate, GetPathProgressExecutor, GetPathProgressTemplate, GetPathResultExecutor, GetPathResultTemplate, HasLineOfSightExecutor, HasLineOfSightTemplate, IncrementalPathfindingNodeDefinitions, IsPathCompleteExecutor, IsPathCompleteTemplate, IsWalkableExecutor, IsWalkableTemplate, MoveAlongPathExecutor, MoveAlongPathTemplate, PathfindingNodeDefinitions, RequestPathAsyncExecutor, RequestPathAsyncTemplate, SetObstacleExecutor, SetObstacleTemplate, StepPathExecutor, StepPathTemplate };
