import { Store } from '@ngrx/store';
import VectorLayer from 'ol/layer/Vector';
import Map from 'ol/Map';
import Feature from 'ol/Feature';
import { Observable } from 'rxjs';
import { PrintDictionary } from './interfaces/config-toolbar.interface';
import { MangolLayer } from './classes/Layer';
import { CursorMode } from './interfaces/cursor-mode';
import { MangolControllersFullScreenDictionary, MangolControllersPositionDictionary, MangolControllersRotationDictionary, MangolControllersZoomDictionary } from './interfaces/config-map-controllers.interface';
import { MangolConfig } from './interfaces/config.interface';
import * as fromConfig from './store/config/config.reducers';
import * as fromControllers from './store/controllers/controllers.reducers';
import * as fromMangol from './store/mangol.reducers';
import * as fromMap from './store/map/map.reducers';
import * as fromSidebar from './store/sidebar/sidebar.reducers';
import * as fromCursor from './store/cursor/cursor.reducers';
import * as fromLayers from './store/layers/layers.reducers';
import * as fromFeatureinfo from './store/featureinfo/featureinfo.reducers';
import { FeatureinfoDictionary } from './store/featureinfo/featureinfo.reducers';
import * as fromLayertree from './store/layertree/layertree.reducers';
import { LayertreeDictionary } from './store/layertree/layertree.reducers';
import * as fromMeasure from './store/measure/measure.reducers';
import { MeasureDictionary, MeasureMode } from './store/measure/measure.reducers';
import { PrintLayout, PrintSize } from './store/print/print.reducers';
import * as fromPrint from './store/print/print.reducers';
export declare class MangolService {
    private store;
    configState$: Observable<fromConfig.State>;
    mapState$: Observable<fromMap.State>;
    sidebarState$: Observable<fromSidebar.State>;
    controllersState$: Observable<fromControllers.State>;
    cursorState$: Observable<fromCursor.State>;
    featureinfoState$: Observable<fromFeatureinfo.State>;
    layersState$: Observable<fromLayers.State>;
    layertreeState$: Observable<fromLayertree.State>;
    measureState$: Observable<fromMeasure.State>;
    printState$: Observable<fromPrint.State>;
    constructor(store: Store<fromMangol.MangolState>);
    /**
     * Resets the Mangol State
     */
    resetMangolState(): void;
    setConfig(config: MangolConfig): void;
    setMap(map: Map): void;
    toggleSidebar(): void;
    setHasSidebar(hasSidebar: boolean): void;
    setSidebarMode(mode: string): void;
    setSidebarCollapsible(collapsible: boolean): void;
    setSidebarOpened(opened: boolean): void;
    setSidebarTitle(title: string): void;
    setSidebarSelectedModule(module: string): void;
    resetControllers(): void;
    setControllersShowZoom(show: boolean): void;
    setControllersZoomDictionary(dictionary: MangolControllersZoomDictionary): void;
    setControllersShowTooltip(show: boolean): void;
    setControllersShowPosition(show: boolean): void;
    setControllersPositionPrecision(precision: number): void;
    setControllersPositionCoordinates(coordinates: [number, number]): void;
    setControllersPositionDictionary(dictionary: MangolControllersPositionDictionary): void;
    setControllersShowRotation(show: boolean): void;
    setControllersRotationDictionary(dictionary: MangolControllersRotationDictionary): void;
    setControllersShowRotationTooltip(show: boolean): void;
    setControllersRotationValue(value: number): void;
    setControllersShowFullscreen(show: boolean): void;
    setControllersShowFullscreenTooltip(show: boolean): void;
    setControllersFullscreenDictionary(dictionary: MangolControllersFullScreenDictionary): void;
    resetCursorMode(): void;
    setCursorMode(mode: CursorMode): void;
    setCursorVisible(visible: boolean): void;
    setCursorLayer(layer: VectorLayer): void;
    featureinfoSetHasFeatureinfo(hasFeatureinfo: boolean): void;
    featureinfoSetDisabled(disabled: boolean): void;
    featureinfoSetTitle(title: string): void;
    featureinfoSetMaxFeatures(maxFeatures: number): void;
    featureinfoSetLayers(layers: MangolLayer[]): void;
    featureinfoSetSelectedLayer(layer: MangolLayer): void;
    featureinfoSetResultsLayer(layer: VectorLayer): void;
    featureinfoSetResultsItems(features: Feature[]): void;
    featureinfoSetDictionary(dictionary: FeatureinfoDictionary): void;
    featureinfoSetHoverColor(color: [number, number, number]): void;
    /**
     * LAYERS state functions
     */
    layersSetLayers(layers: MangolLayer[]): void;
    layersSetMeasureLayer(layer: VectorLayer): void;
    /**
     * LAYERTREE state functions
     */
    layertreeSetHasLayertree(hasLayertree: boolean): void;
    layertreeSetDisabled(disabled: boolean): void;
    layertreeSetTitle(title: string): void;
    layertreeSetDictionary(dictionary: LayertreeDictionary): void;
    layertreeShowLayergroupBadges(showBadges: boolean): void;
    /**
     * MEASURE state functions
     */
    measureSetHasMeasure(hasMeasure: boolean): void;
    measureSetDisabled(disabled: boolean): void;
    measureSetTitle(title: string): void;
    measureSetDictionary(dictionary: MeasureDictionary): void;
    measureSetMode(mode: MeasureMode): void;
    /**
     * PRINT state functions
     */
    printSetHasPrint(hasPrint: boolean): void;
    printSetDisabled(disabled: boolean): void;
    printSetTitle(title: string): void;
    printSetResolutions(resolutions: number[]): void;
    printSetLayouts(layouts: PrintLayout[]): void;
    printSetSizes(sizes: PrintSize[]): void;
    printSetDictionary(dictionary: PrintDictionary): void;
    printSetSelectedLayout(layout: PrintLayout): void;
    printSetSelectedResolution(resolution: number): void;
    printSetSelectedSize(size: PrintSize): void;
}
