import { ControlStateHandler } from "../physics/player"; import { EPhysicsCtx } from "../physics/settings"; import { EntityState, IEntityState } from "../physics/states"; import { IPhysics } from "../physics/engines"; import { Entity } from "prismarine-entity"; import { Vec3 } from "vec3"; export type SimulationGoal = (state: State, ticks: number) => boolean | ((state: State) => boolean); export type OnGoalReachFunction = (state: State) => void; export type Controller = (state: State, ticks: number) => void; export declare class BaseSimulator { readonly ctx: IPhysics; constructor(ctx: IPhysics); predictGenerator(simCtx: EPhysicsCtx, world: any, ticks?: number, controls?: ControlStateHandler): Generator, unknown>; predictForward(target: Entity, world: any, ticks?: number, controls?: ControlStateHandler): EntityState; predictForwardRaw(simCtx: EPhysicsCtx, world: any, ticks?: number, controls?: ControlStateHandler): State; simulateUntil(goal: SimulationGoal, onGoalReach: OnGoalReachFunction, controller: Controller, simCtx: EPhysicsCtx, world: any, ticks?: number): State; static getReached(...path: Vec3[]): SimulationGoal; static getCleanupPosition(...path: Vec3[]): OnGoalReachFunction; static buildFullController(...controllers: Controller[]): Controller; static buildAnyGoal(...goals: SimulationGoal[]): SimulationGoal; static buildAllGoal(...goals: SimulationGoal[]): SimulationGoal; }