import { GEMLayer, GEMLayerTreeItem, LayersEvents, ProcessedGEMLayer, WMSLayerDetailed } from '../../components/Map/types';
import { TypedEventEmitter } from '../EventEmitter';
declare class LayersService {
    private selectedLayers;
    private selectedLayersSymbols;
    layersEventEmitters: TypedEventEmitter<LayersEvents>;
    queryGEMLayers(): Promise<import('axios').AxiosResponse<{
        response: {
            data: GEMLayer[];
        };
    }, any>>;
    querySelectedLayers(symbol: string): Promise<import('axios').AxiosResponse<any, any>>;
    saveLayersConfig(value: string, symbol: string): Promise<import('axios').AxiosResponse<any, any>>;
    setSelectedLayers(layers: (GEMLayer | WMSLayerDetailed)[]): void;
    addLayersToSelected(layers: (GEMLayer | WMSLayerDetailed)[]): void;
    removeLayersFromSelected(layers: (GEMLayer | WMSLayerDetailed)[]): void;
    getSelectedLayersSymbols(): string[];
    queryLayersByKeys(unprocessedLayers: GEMLayer[], checkedLayersKeys: string[]): GEMLayer[];
    processLayersStructure(layers: GEMLayer[], selectedLayerIds: string[]): {
        id: string;
        parent: string;
        label: string;
        config: import('../Map/types').GEMLayerConfig;
        checked: boolean;
    }[];
    createTreeItems(flatLayers: ProcessedGEMLayer[]): GEMLayerTreeItem[];
    onNodeCheck(nodeId: string, checked: boolean, treeItems: GEMLayerTreeItem[]): GEMLayerTreeItem[];
    getCheckedLayers(treeItems: GEMLayerTreeItem[], unprocessedLayers: GEMLayer[]): GEMLayer[];
    getCheckedLayerIds(treeItems: GEMLayerTreeItem[]): string[];
    filterTree(nodes: GEMLayerTreeItem[], searchTerm: string): GEMLayerTreeItem[];
    private filterNode;
}
declare const _default: LayersService;
export default _default;
