import { Feature, Polygon, Position } from 'geojson';
type CallbackFunctionInput = {
    isect: Position;
    ring0: number;
    edge0: number;
    start0: Position;
    end0: Position;
    frac0: number;
    ring1: number;
    edge1: number;
    start1: Position;
    end1: Position;
    frac1: number;
    unique: boolean;
};
type Options = {
    useSpatialIndex: boolean;
    epsilon: number;
    reportVertexOnVertex: boolean;
    reportVertexOnEdge: boolean;
    callbackFunction: (callbackFunctionInput: CallbackFunctionInput) => any;
};
/**
 * Return a polygon's self-intersections
 *
 * @export
 * @param {Feature<Polygon>} polygon GeoJSON Polygon
 * @param {?(Partial<Options>)} [partialOptions] Option
 * @returns {any[]} Array of self-intersection points (or any type produced by the callback function)
 */
export default function gpsi(polygon: Feature<Polygon>, partialOptions?: Partial<Options>): any[];
/**
 * Compute where two lines intersect.
 *
 * From https://en.wikipedia.org/wiki/Line%E2%80%93line_intersection
 *
 * @param {Position} start0
 * @param {Position} end0
 * @param {Position} start1
 * @param {Position} end1
 * @returns {(Position | undefined)} The point of intersection, or undefined if no intersection
 */
export declare function intersect(start0: Position, end0: Position, start1: Position, end1: Position): Position | undefined;
export declare function equalArrays(array1: any[], array2: any[]): boolean;
export {};
//# sourceMappingURL=index.d.ts.map