/// <reference types="screeps" />
import { MoveTarget } from '..';
/**
 * Position is an edge tile
 */
export declare const isExit: (pos: RoomPosition) => boolean;
/**
 * Takes a target or list of targets in a few different possible formats and
 * normalizes to a list of MoveTarget[]
 */
export declare const normalizeTargets: (targets: RoomPosition | RoomPosition[] | _HasRoomPosition | MoveTarget | MoveTarget[], keepTargetInRoom?: any, flee?: any) => MoveTarget[];
/**
 * If a MoveTarget's position and range overlaps a room edge, this will split
 * the MoveTarget into two or four MoveTargets to cover an equivalent area without
 * overlapping the edge. Useful for pathing in range of a target, but making sure it's
 * at least in the same room.
 */
export declare function fixEdgePosition({ pos, range }: MoveTarget): MoveTarget[];
/**
 * Helper for calculating adjacent tiles
 */
export declare const calculateAdjacencyMatrix: (proximity?: number) => {
    x: number;
    y: number;
}[];
/**
 * Positions in range 1 of `pos` (not includeing `pos`)
 */
export declare const calculateAdjacentPositions: (pos: RoomPosition) => RoomPosition[];
/**
 * Positions within `proximity` of `pos`, optionally including `pos`
 */
export declare const calculateNearbyPositions: (pos: RoomPosition, proximity: number, includeCenter?: boolean) => RoomPosition[];
/**
 * Positions at `proximity` of `pos`
 */
export declare const calculatePositionsAtRange: (pos: RoomPosition, proximity: number) => RoomPosition[];
/**
 * Adjacent positions that are pathable (optionally ignoring creeps)
 */
export declare const adjacentWalkablePositions: (pos: RoomPosition, ignoreCreeps?: boolean) => RoomPosition[];
/**
 * Check if a position is walkable, accounting for terrain, creeps, and structures
 */
export declare const isPositionWalkable: (pos: RoomPosition, ignoreCreeps?: boolean, ignoreStructures?: boolean) => boolean;
