import { Block, Dimension, Direction, Entity, ItemType, Vector3 } from "@minecraft/server";
import { LoopOperator } from "../enum";
import { BlockStateSuperset } from "@minecraft/vanilla-data";
import { TendrockVector3 } from "../vector";
export declare class ServerWorld {
    protected _neighborOffsetMap: Map<Direction, TendrockVector3>;
    setBlockState<T extends (number | string | boolean)>(block: Block, stateName: string, state: T): void;
    neighborBlock(block: Block, direction: Direction): Block;
    neighborLocation(sourceLocation: Vector3, direction: Direction): Vector3;
    /**
     * @static
     * @remarks
     * 获取两个位置之间的所有位置并对其执行回调
     * Get all locations between two locations and execute a callback on them
     * @param pos1
     * 第一个位置
     * First position
     * @param pos2
     * 第二个位置
     * Second position
     * @param callback
     * 对每个位置执行的回调函数
     * Callback function executed for each position
     */
    forEachLocationBetween(pos1: Vector3, pos2: Vector3, callback: (location: TendrockVector3) => boolean): void;
    forEachNeighborBlock(block: Block, callback: (neighborBlock: Block, direction: Direction) => LoopOperator | void): void;
    cycleBlockState<T extends keyof BlockStateSuperset>(block: Block, propertyName: T | string): void;
    cycleBlockStateReverse<T extends keyof BlockStateSuperset>(block: Block, propertyName: T | string): void;
    spawnItem(dimension: Dimension, location: Vector3, itemType: ItemType | string, amount?: number): Entity;
    hasPlayerNearby(block: Block, maxDistance: number): boolean;
    isAbsoluteTimeBetween(min: number, max: number): boolean;
    isDayTimeBetween(min: number, max: number): boolean;
    isSunrise(): boolean;
    isDay(): boolean;
    isMorning(): boolean;
    isAfternoon(): boolean;
    isSunset(): boolean;
    isNight(): boolean;
    isPreMidnight(): boolean;
    isAfterMidnight(): boolean;
}
export declare const serverWorld: ServerWorld;
