import { Vec3 } from "vec3";
export declare enum BlockFace {
    UNKNOWN = -999,
    BOTTOM = 0,
    TOP = 1,
    NORTH = 2,
    SOUTH = 3,
    WEST = 4,
    EAST = 5
}
export declare class RaycastIterator {
    block: {
        x: number;
        y: number;
        z: number;
        face: number;
    };
    blockVec: Vec3;
    pos: Vec3;
    dir: Vec3;
    invDirX: number;
    invDirY: number;
    invDirZ: number;
    stepX: number;
    stepY: number;
    stepZ: number;
    tDeltaX: number;
    tDeltaY: number;
    tDeltaZ: number;
    tMaxX: number;
    tMaxY: number;
    tMaxZ: number;
    maxDistance: number;
    constructor(pos: Vec3, dir: Vec3, maxDistance: number);
    intersect(shapes: [x0: number, y0: number, z0: number, x1: number, y1: number, z1: number][], offset: Vec3): {
        pos: Vec3;
        face: BlockFace;
    } | null;
    next(): {
        x: number;
        y: number;
        z: number;
        face: number;
    } | null;
}
