import { ReactNode } from 'react';
import { LayerType } from '../../types';
export interface Layer extends LayerType {
    legend?: LayerLegend;
    name?: string;
    order?: number;
}
export interface LayerStore {
    layers: Record<string, Layer>;
    setLayer: (id: string, layer: Partial<Layer>) => void;
    removeLayer: (id: string) => void;
    getLayers: () => Record<string, Layer>;
    getLayer: (id: string) => Layer | undefined;
}
/**
 * @experimental - This property is experimental and may change in the future.
 * It is not recommended to use it in production code.
 */
export interface LayerGroup {
    collapsed?: boolean;
    collapsible?: boolean;
    id: string;
    label: string;
    opacity?: number;
    opacityControl?: boolean;
    switchable?: boolean;
    visible?: boolean;
}
export interface LayerLegend {
    collapsed?: boolean;
    collapsible?: boolean;
    helperText?: ReactNode;
    /**
     * @deprecated - This property is deprecated and will be removed in the future
     * It is not recommended to use it in production code.
     */
    group?: LayerGroup;
    maxZoom?: number;
    minZoom?: number;
    opacityControl?: boolean;
    switchable?: boolean;
    variables?: unknown;
}
