import { Env } from "../env"; import { Goal, GoalQueue } from "../goal"; import { Mod } from "../mod"; import { Solution } from "../solution"; /** # Solver In implementation, we use array of queues to do search, but we should be thinking in terms of tree instead of queues, only by doing so, we can have a clear understanding of the implementation. **/ export declare class Solver { queues: Array; constructor(queues: Array); static forGoals(goals: Array): Solver; next(mod: Mod, env: Env): Solution | undefined; report(): void; solve(mod: Mod, env: Env, options?: { limit?: number; }): Array; } export declare function formatGoal(goal: Goal): string;