import { RefObject } from 'react';
import type { MapRef, ViewStateChangeEvent } from '@vis.gl/react-mapbox';
import type { Feature, Polygon } from 'geojson';
import type { SelectionZone } from '../../../../types/SelectionZone';
import { Coordinates, SubjectWell } from '../OffsetWellMap.types';
type SelectionMode = 'radius' | 'lasso';
type UseMapCameraControlParams = {
    mapRef: RefObject<MapRef | null>;
    subjectWellCoords: Coordinates | null;
    subjectWell: SubjectWell | null;
    isLoadAllWells: boolean;
    isMapReady: boolean;
    selectionZone?: SelectionZone | null;
    shouldRecenter?: boolean;
    onRecenterComplete?: () => void;
    radius: number;
    selectionMode: SelectionMode;
    circleGeoJSON: Feature<Polygon> | null;
};
export declare const useMapCameraControl: ({ mapRef, subjectWellCoords, subjectWell, isLoadAllWells, isMapReady, selectionZone, shouldRecenter, onRecenterComplete, radius, selectionMode, circleGeoJSON, }: UseMapCameraControlParams) => {
    viewState: {
        longitude: number;
        latitude: number;
        zoom: number;
    };
    distance: string | null;
    canZoomIn: boolean;
    canZoomOut: boolean;
    isZoomReset: boolean;
    isTooZoomedOut: boolean;
    effectiveZoomedOut: boolean;
    handleMove: (evt: ViewStateChangeEvent) => void;
    handleMoveStart: () => void;
    handleMoveEnd: () => void;
    handleZoomInWithSync: () => void;
    handleZoomOutWithSync: () => void;
    handleResetZoom: () => void;
    tileSafeOnResize: () => void;
};
export {};
//# sourceMappingURL=useMapCameraControl.d.ts.map