import type { Entity } from "prismarine-entity";
import type { Bot } from "mineflayer";
import type { Vec3 } from "vec3";
/**
 * TODO: Inherit other bot names. May need to communciate to a server for this one. Or perhaps reference this once?
 */
export declare class FilterFunctions {
    private bot;
    specificNames: string[];
    botNames: string[];
    constructor(bot: Bot);
    addBotName(name: string): void;
    getNearestEntity(func: (entity: Entity, ...args: any[]) => boolean, ...args: any[]): Entity | null;
    static getNearestEntity(bot: Bot, func: (entity: Entity, ...args: any[]) => boolean, ...args: any[]): Entity | null;
    allButOtherBotsFilter(): Entity | null;
    static allButOtherBotsFilter(bot: Bot, ...names: string[]): Entity | null;
    specificNamesFilter(): Entity | null;
    static specificNamesFilter(bot: Bot, ...names: string[]): Entity | null;
    nearestCrystalFilter(): Entity | null;
    static nearestCrystalFilter(bot: Bot): Entity | null;
    crystalAtPosition(position: Vec3): Entity | null;
}
