import { Tile } from '../../dataStructures';
import type { BBOX, BBox, VectorLineString, VectorPointGeometry } from '..';
/** The child of a tile */
export interface TileChild {
    /** The id of the child tile */
    id: bigint;
    /** The child tile */
    tile: Tile;
}
/** Split features into the 4 children of a tile */
export type TileChildren = [
    TileChild,
    TileChild,
    TileChild,
    TileChild
];
/**
 * @param tile - the tile to split
 * @param buffer - the buffer around the tile for lines and polygons
 * @returns - the tile's children split into 4 sub-tiles
 */
export declare function splitTile(tile: Tile, buffer?: number): TileChildren;
/**
 * @param geometry - input vector geometry
 * @param axis - 0 for x, 1 for y
 * @param k1 - minimum accepted value of the axis
 * @param k2 - maximum accepted value of the axis
 * @returns - the clipped geometry or undefined if the geometry was not inside the range
 */
export declare function clipPoint(geometry: VectorPointGeometry, axis: 0 | 1, k1: number, k2: number): VectorPointGeometry | undefined;
/**
 * After clipping a line, return the altered line,
 * the offset the new line starts at,
 * and if the line is ccw
 */
export interface ClipLineResult {
    line: VectorLineString;
    offset: number;
    vecBBox?: BBOX;
}
/** Ensuring `vecBBox` exists */
export interface ClipLineResultWithBBox {
    line: VectorLineString;
    offset: number;
    vecBBox: BBOX;
}
/**
 * Data should always be in a 0->1 coordinate system to use this clip function
 * @param geom - the original geometry line
 * @param bbox - the bounding box to clip the line to
 * @param isPolygon - true if the line comes from a polygon
 * @param offset - the starting offset the line starts at
 * @param buffer - the buffer to apply to the line (spacing outside the bounding box)
 * @returns - the clipped geometry
 */
export declare function clipLine(geom: VectorLineString, bbox: BBox, isPolygon: boolean, offset?: number, buffer?: number): ClipLineResultWithBBox[];
//# sourceMappingURL=clip.d.ts.map