import { IFormOptions } from '@csnext/cs-core';
import { LinePaint, LineLayout, SymbolLayout, SymbolPaint, FillPaint, FillLayout, CirclePaint, CircleLayout } from 'mapbox-gl';
import { ClusterSettings } from './layer-source';
export interface ILayerStyle {
    type?: 'fill' | 'line' | 'symbol' | 'circle' | 'fill-extrusion' | 'raster' | 'background' | 'heatmap' | 'hillshade';
    iconZoomLevel?: number;
    title?: string;
    mapTitle?: string;
    popup?: string;
    fill?: boolean;
    line?: boolean;
    pointCircle?: boolean;
    icon?: string;
    icons?: {
        [id: string]: string;
    };
    defaultLegendProperty?: string;
}
export declare const MapboxStopForm: IFormOptions;
export declare const MapboxColorForm: IFormOptions;
export declare const CirclePaintForm: IFormOptions;
export declare const LineLayoutForm: IFormOptions;
export declare const LinePaintForm: IFormOptions;
export declare const FillPaintForm: IFormOptions;
export declare const SymbolLayoutForm: IFormOptions;
export declare const SymbolPaintForm: IFormOptions;
export declare class MapboxStyles {
    linePaint?: LinePaint;
    lineLayout?: LineLayout;
    symbolLayout?: SymbolLayout;
    symbolPaint?: SymbolPaint;
    fillPaint?: FillPaint;
    fillLayout?: FillLayout;
    circlePaint?: CirclePaint;
    circleLayout?: CircleLayout;
    constructor(styles?: MapboxStyles);
}
export declare class LayerStyle implements ILayerStyle {
    type?: 'fill' | 'line' | 'symbol' | 'circle' | 'fill-extrusion' | 'raster' | 'background' | 'heatmap' | 'hillshade';
    iconZoomLevel?: number;
    title?: string;
    mapTitle?: string;
    popup?: string;
    pointCircle?: boolean;
    icon?: string;
    icons?: {
        [id: string]: string;
    };
    defaultLegendProperty?: string;
    mapbox?: MapboxStyles;
    opacity?: number;
    hoverOpacity?: number;
    showSymbol?: boolean;
    clusterSettings?: ClusterSettings;
    _opacity?: number;
    _originalMapbox?: MapboxStyles;
}
