import { Block, BlockPermutation, Direction } from '@minecraft/server';
import { Axis } from "../lib";
export type BlockDirectionMethodNames = 'above' | 'below' | 'east' | 'west' | 'south' | 'north';
export type DirectionStateNames = 'minecraft:cardinal_direction' | 'minecraft:facing_direction';
export declare class DirectionUtils {
    static readonly AllDirections: Direction[];
    static readonly AllBlockDirectionMethodNames: string[];
    static readonly DirectionStateNames: string[];
    protected static readonly _DirectionClockwiseMap: Map<Axis, Direction[]>;
    protected static readonly _DirectionMethodNameMap: Map<Direction, BlockDirectionMethodNames>;
    static reverse(direction: Direction): Direction;
    static getDirectionMethodName(direction: Direction): BlockDirectionMethodNames;
    static rotateClockwise(axis: Axis, direction: Direction): Direction;
    static fromPropertyStr(propertyStr: string): Direction | undefined;
    static fromVanillaFacingDirection(blockOrPermutation: Block | BlockPermutation): Direction;
    static fromVanillaCardinalDirection(blockOrPermutation: Block | BlockPermutation): Direction;
    static setDirection<T extends DirectionStateNames>(block: Block, stateName: T, direction: Direction): void;
    static allDirectionExclude(...excludeDirectionList: Direction[]): Direction[];
}
