///
import { Bot } from "mineflayer";
import { Entity } from "prismarine-entity";
import { Item } from "prismarine-item";
import { EventEmitter } from "stream";
import { FullConfig } from "./swordconfigs";
import { MaxDamageOffset } from "./sworddata";
/**
* The main pvp manager plugin class.
*/
export declare class SwordPvp extends EventEmitter {
bot: Bot;
options: FullConfig;
ticksToNextAttack: number;
ticksSinceTargetAttack: number;
ticksSinceLastHurt: number;
ticksSinceLastTargetHit: number;
ticksSinceLastSwitch: number;
wasInRange: boolean;
wasVisible: boolean;
meleeAttackRate: MaxDamageOffset;
target?: Entity;
lastTarget?: Entity;
weaponOfChoice: string;
private willBeFirstHit;
private tickOverride;
private targetShielding;
private shieldToggleListener?;
private currentStrafeDir?;
private strafeCounter;
private targetGoal?;
constructor(bot: Bot, options?: FullConfig);
changeWeaponState(weapon: string): Item | null;
checkForWeapon(weapon?: string): Item | null;
equipWeapon(weapon: Item): Promise;
entityWeapon(entity?: Entity): Item;
entityShieldStatus(entity?: Entity): boolean;
checkForShield: () => Promise;
swingUpdate: (entity: Entity) => Promise;
private lastHealth;
removalUpdate: (entity: Entity) => Promise;
private clearShieldToggleListener;
hurtUpdate: (entity: Entity) => Promise;
attack(target: Entity): Promise;
stop(): void;
update: () => void;
private getEntityEyeHeight;
private getEntityEyePosition;
botReach(): number;
targetReach(): number;
checkRange(): void;
checkVisibility(): void;
causeCritical(): Promise;
doMove(): Promise;
doStrafe(): Promise;
sprintTap(): Promise;
toggleShield(): Promise;
rotate(): false | undefined;
reactionaryCrit(noTickLimit?: boolean): Promise;
attemptAttack(reason: string): Promise;
shieldEquipped(): boolean;
}