/** @packageDocumentation
 * @module Tiles
 */
import { AngleSweep, Range2d } from "@itwin/core-geometry";
import { MapTilingScheme } from "../internal";
/** The JSON representation of a [[QuadId]]
 * @public
 */
export interface QuadIdProps {
    /** The level of the node within the tree, increasing with each subdivision, as a non-negative integer. */
    level: number;
    /** The node's position along the X axis as a non-negative integer. */
    column: number;
    /** The node's position along the Y axis as a non-negative integer. */
    row: number;
}
/** Identifies a node within a [quad tree](https://en.wikipedia.org/wiki/Quadtree), such as a [[MapTile]] within a [[MapTileTree]].
 * A quad tree recursively sub-divides a two-dimensional space along the X and Y axes such that each node on level L has four child nodes on
 * level L+1.
 * @public
 */
export declare class QuadId {
    /** The level of the node within the tree, increasing with each subdivision, as a non-negative integer. */
    level: number;
    /** The node's position along the X axis as a non-negative integer. */
    column: number;
    /** The node's position along the Y axis as a non-negative integer. */
    row: number;
    /** @alpha */
    get isValid(): boolean;
    /** @alpha */
    static createFromContentId(stringId: string): QuadId;
    /** @alpha */
    get contentId(): string;
    /** @alpha */
    static getTileContentId(level: number, column: number, row: number): string;
    /** @alpha */
    get debugString(): string;
    /** Construct a new QuadId. The inputs are expected to be non-negative integers. */
    constructor(level: number, column: number, row: number);
    /** Compute the QuadIds corresponding to this node's four child nodes. */
    getChildIds(columnCount?: number, rowCount?: number): QuadId[];
    /** Compute the region of the surface of the Earth represented by this node according to the specified tiling scheme. */
    getLatLongRangeDegrees(mapTilingScheme: MapTilingScheme): Range2d;
    /** Compute the region of the surface of the Earth represented by this node according to the specified tiling scheme. */
    getLatLongRangeRadians(mapTilingScheme: MapTilingScheme): Range2d;
    private _getLatLongRange;
    /** @alpha */
    getAngleSweep(mapTilingScheme: MapTilingScheme): {
        longitude: AngleSweep;
        latitude: AngleSweep;
    };
    /** Returns true if this node is adjacent to the south pole according to the specified tiling scheme. */
    bordersSouthPole(mapTilingScheme: MapTilingScheme): boolean;
    /** Returns true if this node is adjacent to the north pole according to the specified tiling scheme. */
    bordersNorthPole(mapTilingScheme: MapTilingScheme): boolean;
    /** Compares this Id to another according to the conventions of an [OrderedComparator]($bentley). */
    compare(other: QuadId): number;
    /** Creates a QuadId from a JSON representation */
    static fromJSON(props: QuadIdProps): QuadId;
    /** Convert this QuadId to a JSON representation */
    static toJSON(props: QuadIdProps): QuadIdProps;
}
//# sourceMappingURL=QuadId.d.ts.map