import { getCurrentInstruction, preProcessPath } from './Instructions';
import MapView from './MapView';
import {
  COMMANDS_FROM_MAP,
  COMMANDS_TO_MAP,
  EVENTS_FROM_ODP,
  MAP_EVENT_LISTENER,
  MAP_VIEW_REFERENCE,
  ODP_EVENT_LISTENER,
  ODP_VIEW_REFERENCE,
} from './CommandTypes';
import {
  JIBESTREAM_DESTINATION,
  JIBESTREAM_WAYPOINT,
  JIBESTREAM_PATH,
  JIBESTREAM_LOCATION,
  JIBESTREAM_STYLE,
  INSTRUCTION,
  MAP_CREDENTIALS,
  MAP_COMPASS_PROPERTIES,
  MAP_FLOOR_SELECTOR_PROPERTIES,
  MAP_SEARCH_PROPERTIES,
  MAP_ZOOM_BUTTON_PROPERTIES,
  JIBESTREAM_DESTINATION_SET,
  MAP_TAP_EVENT,
} from './JibestreamTypes';
import { ODP_ON_FACILITY_UPDATE } from './schemas/OdpOnFacilityUpdateType';
import { ODP_ON_KEY_VALIDATION } from './schemas/OdpOnKeyValidationType';
import { ODP_ON_NAVIGATION_UPDATE } from './schemas/OdpOnNavigationUpdateType';
import { ODP_ON_READY } from './schemas/OdpOnReadyType';
// import OdpViewModule from './OdpViewModule';

export const JMapView = MapView;
// export const JOdpViewModule = OdpViewModule;
export const Utilities = {
  getCurrentInstruction,
  preProcessPath,
};

export type COMMANDS_TO_MAP_TYPE = COMMANDS_TO_MAP;
export type COMMANDS_FROM_MAP_TYPE = COMMANDS_FROM_MAP;
export type EVENTS_FROM_ODP_TYPE = EVENTS_FROM_ODP;
export type MAP_EVENT_LISTENER_TYPE = MAP_EVENT_LISTENER;
export type ODP_EVENT_LISTENER_TYPE = ODP_EVENT_LISTENER;
export type MAP_VIEW_REFERENCE_TYPE = MAP_VIEW_REFERENCE;
export type ODP_VIEW_REFERENCE_TYPE = ODP_VIEW_REFERENCE;
export type JIBESTREAM_DESTINATION_TYPE = JIBESTREAM_DESTINATION;
export type JIBESTREAM_WAYPOINT_TYPE = JIBESTREAM_WAYPOINT;
export type JIBESTREAM_PATH_TYPE = JIBESTREAM_PATH;
export type JIBESTREAM_LOCATION_TYPE = JIBESTREAM_LOCATION;
export type JIBESTREAM_STYLE_TYPE = JIBESTREAM_STYLE;
export type INSTRUCTION_TYPE = INSTRUCTION;
export type JIBESTREAM_DESTINATION_SET_TYPE = JIBESTREAM_DESTINATION_SET;
export type MAP_TAP_EVENT_TYPE = MAP_TAP_EVENT;
export type MAP_CREDENTIALS_TYPE = MAP_CREDENTIALS;
export type MAP_COMPASS_PROPERTIES_TYPE = MAP_COMPASS_PROPERTIES;
export type MAP_FLOOR_SELECTOR_PROPERTIES_TYPE = MAP_FLOOR_SELECTOR_PROPERTIES;
export type MAP_SEARCH_PROPERTIES_TYPE = MAP_SEARCH_PROPERTIES;
export type MAP_ZOOM_BUTTON_PROPERTIES_TYPE = MAP_ZOOM_BUTTON_PROPERTIES;
export type ODP_ON_FACILITY_UPDATE_TYPE = ODP_ON_FACILITY_UPDATE;
export type ODP_ON_KEY_VALIDATION_TYPE = ODP_ON_KEY_VALIDATION;
export type ODP_ON_NAVIGATION_UPDATE_TYPE = ODP_ON_NAVIGATION_UPDATE;
export type ODP_ON_READY_TYPE = ODP_ON_READY;
