import { ComputedRef } from 'vue';
import { CreateGeoJsonSourceActions } from '..';
import { GeoJSONSource, GeoJSONSourceSpecification } from 'maplibre-gl';
import { Nullable } from '../../types';

/**
 * GeoJSON source management status enum for better state tracking
 */
export declare enum GeoJsonSourceStatus {
    NotRegistered = "not-registered",
    Registered = "registered",
    Error = "error"
}
/**
 * Enhanced interface for GeoJSON source management methods
 */
interface GeoJsonSourceMethods {
    sourceId: ComputedRef<string | undefined>;
    getSource: ComputedRef<Nullable<GeoJSONSource>>;
    setData: (data: GeoJSONSourceSpecification['data']) => void;
    refreshSource: () => void;
    isSourceReady: ComputedRef<boolean>;
    sourceStatus: ComputedRef<GeoJsonSourceStatus>;
}
/**
 * Configuration options for GeoJSON source management
 */
interface UseGeoJsonSourceProps {
    debug?: boolean;
    autoRefresh?: boolean;
}
/**
 * Enhanced composable for managing GeoJSON source instances
 * Provides reactive source management with improved error handling and performance optimizations
 *
 * @param props - Configuration options for the GeoJSON source manager
 * @returns Enhanced methods and state for GeoJSON source management
 */
export declare function useGeoJsonSource(props?: UseGeoJsonSourceProps): GeoJsonSourceMethods & {
    register: (instance: CreateGeoJsonSourceActions) => void;
};
export {};
//# sourceMappingURL=useGeoJsonSource.d.ts.map