import type { Vec2 } from "./vec2";
/**
 * Coordinates in [-1 ... +1].
 * Left bottom is (-1; -1).
 * Right top is (+1; +1).
 * Center is (0; 0).
 */
interface WorldCoordinates extends Vec2 {
    readonly type?: 'world';
    z?: number;
}
/**
 * Global pixel coordinates. World size depends on zoom.
 * Left top is (0; 0).
 * Right bottom is (2**(zoom + 8); 2**(zoom + 8)).
 */
interface PixelCoordinates extends Vec2 {
    readonly type?: 'pixel';
}
/**
 * Coordinate in Tile CS. Tile CS uses tile as unit. GlobalPixelCoordinate / tileSize.
 * Left top is (0, 0).
 * Right bottom is (2**(zoom + 8) / tileSize; 2**(zoom + 8) / tileSize).
 * Left top of any tile is integers withou any fractional part. Aka tile number.
 * Center of any tile is (smth.5, smth.5).
 */
interface TileCoordinates extends Vec2 {
    readonly type?: 'tile';
}
export { WorldCoordinates, PixelCoordinates, TileCoordinates };
