vue3-maplibre-gl
Version:
Vue 3 components and composables for MapLibre GL JS - Build interactive maps with ease
50 lines (49 loc) • 1.82 kB
TypeScript
import { CreateBaseLayerActions, Nullable, LayerTypes } from '../../types';
import { MaybeRef } from 'vue';
import { SourceSpecification, FilterSpecification, Map, LayerSpecification } from 'maplibre-gl';
/**
* Layer creation status enum for better state management
*/
export declare enum LayerStatus {
NotCreated = "not-created",
Creating = "creating",
Created = "created",
Error = "error"
}
export interface CreateBaseLayerProps<Layer extends LayerSpecification> {
map: MaybeRef<Nullable<Map>>;
id?: string;
source: MaybeRef<string | SourceSpecification | object | null | undefined>;
type: LayerTypes;
beforeId?: string;
filter?: FilterSpecification;
layout?: Layer['layout'];
paint?: Layer['paint'];
maxzoom?: number;
minzoom?: number;
metadata?: object;
sourceLayer?: string;
debug?: boolean;
register?: (actions: CreateBaseLayerActions<Layer>, map: Map) => void;
}
export interface EnhancedLayerActions<Layer extends LayerSpecification> extends CreateBaseLayerActions<Layer> {
layerStatus: Readonly<LayerStatus>;
isLayerReady: boolean;
refreshLayer: () => void;
updateLayer: (updates: {
filter?: FilterSpecification;
minzoom?: number;
maxzoom?: number;
paint?: Record<string, any>;
layout?: Record<string, any>;
}) => void;
}
/**
* Composable for creating and managing MapLibre GL Layers
* Provides reactive layer management with error handling, performance optimizations, and enhanced API
*
* @param cfg - Configuration options for the layer
* @returns Enhanced actions and state for the layer
*/
export declare function useCreateLayer<Layer extends LayerSpecification>(cfg: CreateBaseLayerProps<Layer>): EnhancedLayerActions<Layer>;
//# sourceMappingURL=useCreateLayer.d.ts.map