import Component from '@glimmer/component';
import MapCacheService from '@prysmex-engineering/ember-mapbox-gl/services/map-cache';
import type Owner from '@ember/owner';
import type { Layer, LayerSpecification, Map as MapboxMap } from 'mapbox-gl';
/**
* Adds a data source to the map.
* The API matches the mapbox [source docs](https://www.mapbox.com/mapbox-gl-js/api/#sources).
*
* Example:
* ```hbs
*
*
*
*
*
* ```
*
* @class MapboxGLSource
*
* A hash to pass on to the mapbox [layer](https://www.mapbox.com/mapbox-gl-js/style-spec/#layers).
* @argument {Object} layer
*
* The ID of an existing layer to insert the new layer before.
* If this argument is omitted, the layer will be appended to the end of the layers array.
* @argument {string} before
*/
export interface MapboxGlLayerArgs {
map: MapboxMap;
layer?: Partial;
before?: string;
cacheKey?: string;
cache?: boolean;
_sourceId?: string;
onDidInsert?: (layer: Layer) => void;
onDidUpdate?: (layer: Layer) => void;
}
export interface MapboxGlLayerSignature {
Args: MapboxGlLayerArgs;
Blocks: {
default: [
{
id: string;
}
];
};
}
export default class MapboxGlLayerComponent extends Component {
mapCache: MapCacheService;
layerId: string;
cacheKey?: string;
cache?: boolean;
map?: MapboxMap;
get _sourceId(): string | undefined;
get _layerType(): Layer['type'];
get _envConfig(): Pick;
get _layout(): LayerSpecification['layout'];
get _paint(): LayerSpecification['paint'];
get _layer(): Layer;
constructor(owner: Owner, args: MapboxGlLayerArgs);
updateLayer: void;
willDestroy(): void;
removeOrHideLayer(): void;
}
//# sourceMappingURL=layer.d.ts.map