import { Observable, View } from 'ol'; export declare const copyView: (view: View) => View; /** * The StoredView objects keep references to OpenLayers View objects that may be shared * between multiple maps (when maps are pan/zoom synced). * This file then offers and API for each map to retrieve the StoredView object * that is relevant for the current workspace configuration. * * React is functional, but OpenLayers is object oriented. * This component sits in between the two and thus you can make an argument for either style. * Object oriented was chosen since: * - This allows us to use OpenLayers's Observable as a base class to provide event handling, * which is useful for the implementation. * - For this mechanism to work smoothly with OpenLayers, * we need to pass the exact same View object reference for all maps that are synchronized. Redux stores cannot be used in this context and prop drilling and/or context providers would likely lead to more invasive implementations. */ export declare class StoredView extends Observable { name: string; view: View; constructor(name: string, view: View); setView(view: View): void; } export declare const clearSyncGroupViewStore: () => void; export declare const getViewObjectForMapId: (id: string) => StoredView; export declare const createViewObjectForNewMap: (createFromId: string, newId: string) => void; export declare const getViewObjectForSyncGroup: (id: string) => StoredView;