import { ReactNode } from 'react';
export interface Region {
    latitude: number;
    longitude: number;
    latitudeDelta: number;
    longitudeDelta: number;
}
export interface MarkerData {
    properties: {
        point_count: number;
        index: number;
        [key: string]: any;
    };
    geometry: {
        coordinates: [number, number];
    };
}
export interface MarkerProps {
    coordinate: {
        latitude: number;
        longitude: number;
    };
    cluster?: boolean;
    [key: string]: any;
}
export interface SpiderMarker {
    index: number;
    longitude: number;
    latitude: number;
    centerPoint: {
        latitude: number;
        longitude: number;
    };
}
export interface ClusterStyleProps {
    width: number;
    height: number;
    size: number;
    fontSize: number;
}
export declare const isMarker: (child: ReactNode) => boolean;
export declare const calculateBBox: (region: Region) => [number, number, number, number];
export declare const returnMapZoom: (region: Region, bBox: [number, number, number, number], minZoom: number) => number;
export declare const markerToGeoJSONFeature: (marker: any, index: number) => any;
export declare const generateSpiral: (marker: MarkerData, clusterChildren: any[], markers: MarkerData[], index: number) => SpiderMarker[];
/**
 * Optimized marker style calculation that uses a lookup table for common values
 * to avoid repetitive condition checks for better performance with large datasets
 */
export declare const returnMarkerStyle: (points: number) => ClusterStyleProps;
