import { Bot, ControlState, ControlStateStatus } from "mineflayer";
import { Vec3 } from "vec3";
import { PlayerState } from "../states/playerState";
export declare class ControlStateHandler implements ControlStateStatus {
    forward: boolean;
    back: boolean;
    left: boolean;
    right: boolean;
    jump: boolean;
    sprint: boolean;
    sneak: boolean;
    constructor(forward: boolean, back: boolean, left: boolean, right: boolean, jump: boolean, sprint: boolean, sneak: boolean);
    static DEFAULT(): ControlStateHandler;
    static COPY_BOT(bot: Bot): ControlStateHandler;
    static COPY_STATE(state: PlayerState): ControlStateHandler;
    set(state: ControlState, wanted: boolean): this;
    get(state: ControlState): boolean;
    clear(state: ControlState): this;
    clone(): ControlStateHandler;
    equals(other: ControlStateHandler): boolean;
    applyControls(bot: Bot): void;
    [Symbol.iterator](): Generator<[state: ControlState, wanted: boolean], void, unknown>;
}
export declare class PlayerControls extends ControlStateHandler {
    leftClick: boolean;
    rightClick: boolean;
    yaw: number;
    pitch: number;
    force: boolean;
    constructor(forward: boolean, back: boolean, left: boolean, right: boolean, jump: boolean, sprint: boolean, sneak: boolean, leftClick: boolean, rightClick: boolean, yaw: number, pitch: number, force?: boolean);
    static DEFAULT(): PlayerControls;
    static LOOK(yaw: number, pitch: number, force: boolean): PlayerControls;
    static LOOKAT(pos: Vec3, force: boolean): PlayerControls;
    static COPY_BOT(bot: Bot): PlayerControls;
    static COPY_STATE(state: PlayerState): PlayerControls;
    clone(): PlayerControls;
    setRot(dir: Vec3): void;
    setRotRaw(yaw: number, pitch: number): void;
    movements(): Generator<boolean, void, unknown>;
    linkedMovements(): Generator<[state: ControlState, wanted: boolean], void, unknown>;
}
export declare class AdvancedPlayerControls extends PlayerControls {
    isGrounded: boolean;
    faceBackwards: number;
    mlg: number;
    bucketTimer: number;
    bucketTarget: {
        x: number;
        y: number;
        z: number;
    };
    lastTimer: number;
    constructor(forward: boolean, back: boolean, left: boolean, right: boolean, jump: boolean, sprint: boolean, sneak: boolean, leftClick: boolean, rightClick: boolean, yaw: number, pitch: number, force?: boolean);
    static DEFAULT(): AdvancedPlayerControls;
    static LOOK(yaw: number, pitch: number): AdvancedPlayerControls;
    static LOOKAT(pos: Vec3): AdvancedPlayerControls;
}
