import { UIManager, Platform } from 'react-native';
let MapViewManagerCommands = {
  create: 1,
  center: 2,
  setMapVenue: 3,
  centerMapOnPoint: 4,
  setFollowBlueDot: 5,
  setUserPosition: 6,
  setUserPositionXY: 7,
  clearWayfindingPath: 8,
  wayfindToWaypoint: 9,
  wayfindBetweenWaypoints: 10,
  drawNavigationPath: 11,
  styleUnitsForDestination: 12,
  styleShape: 13
};
if (Platform.OS == 'ios') {
  MapViewManagerCommands = {
    create: "create",
    center: "center",
    setMapVenue: "setMapVenue",
    centerMapOnPoint: "centerMapOnPoint",
    setFollowBlueDot: "setFollowBlueDot",
    setUserPosition: "setUserPosition",
    setUserPositionXY: "setUserPositionXY",
    clearWayfindingPath: "clearWayfindingPath",
    wayfindToWaypoint: "wayfindToWaypoint",
    wayfindBetweenWaypoints: "wayfindBetweenWaypoints",
    drawNavigationPath: "drawNavigationPath",
    styleUnitsForDestination: "styleUnitsForDestination",
    styleShape: "styleShape"
  };
}
export const createFragment = viewId => UIManager.dispatchViewManagerCommand(viewId, MapViewManagerCommands.create.toString(), [viewId]);
export const centerMap = (viewId, rotation, animationDuration) => UIManager.dispatchViewManagerCommand(viewId, MapViewManagerCommands.center.toString(), [rotation, animationDuration]);
export function getRandomInt(max) {
  return Math.floor(Math.random() * max);
}
export const setMapVenue = _ref => {
  let {
    viewId,
    credentials,
    compass,
    floorSelector,
    zoomButtons,
    search
  } = _ref;
  return UIManager.dispatchViewManagerCommand(viewId, MapViewManagerCommands.setMapVenue.toString(), [credentials, compass, floorSelector, zoomButtons, search]);
};
export const centerMapOnPoint = (viewId, point) => UIManager.dispatchViewManagerCommand(viewId, MapViewManagerCommands.centerMapOnPoint.toString(), [point]);
export const setFollowBlueDot = function (viewId, enabled) {
  let rotate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
  let interval = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 500;
  return UIManager.dispatchViewManagerCommand(viewId, MapViewManagerCommands.setFollowBlueDot.toString(), [enabled, rotate, interval]);
};
export const setUserPosition = (viewId, x, y, heading, format) => UIManager.dispatchViewManagerCommand(viewId, MapViewManagerCommands.setUserPosition.toString(), [x, y, heading, format]);
export const clearWayfindingPath = viewId => UIManager.dispatchViewManagerCommand(viewId, MapViewManagerCommands.clearWayfindingPath.toString(), []);
export const wayfindToWaypoint = (viewId, waypointId) => UIManager.dispatchViewManagerCommand(viewId, MapViewManagerCommands.wayfindToWaypoint.toString(), [waypointId]);
export const wayfindBetweenWaypoints = (viewId, originId, destinationId) => UIManager.dispatchViewManagerCommand(viewId, MapViewManagerCommands.wayfindBetweenWaypoints.toString(), [originId, destinationId]);
export const drawNavigationPath = (viewId, pathId, shouldFocus, style) => UIManager.dispatchViewManagerCommand(viewId, MapViewManagerCommands.drawNavigationPath.toString(), [pathId, shouldFocus, style]);
export const styleUnitsForDestination = (viewId, destination, style) => UIManager.dispatchViewManagerCommand(viewId, MapViewManagerCommands.styleUnitsForDestination.toString(), [destination, style]);
export const styleShape = (viewId, id, style) => UIManager.dispatchViewManagerCommand(viewId, MapViewManagerCommands.styleShape.toString(), [id, style]);

//   export type MAP_VIEW_REFERENCE = {
//     setMapVenue: ({
//       credentials,
//       compass,
//       floorSelector,
//       zoomButtons,
//       search,
//     }: {
//       credentials: MAP_CREDENTIALS;
//       compass?: MAP_COMPASS_PROPERTIES;
//       floorSelector?: MAP_FLOOR_SELECTOR_PROPERTIES;
//       zoomButtons?: MAP_ZOOM_BUTTON_PROPERTIES;
//       search?: MAP_SEARCH_PROPERTIES;
//     }) => void;
//     centerMapOnPoint: (point: number[]) => void;
//     setFollowBlueDot: (
//       enabled: boolean,
//       rotate?: boolean,
//       interval?: number
//     ) => void;
//     setUserPosition: (lat: number, long: number, heading: number) => void;
//     setUserPositionXY: (x: number, y: number, heading: number) => void;
//     clearWayfindingPath: () => void;
//     wayfindToWaypoint: (waypointId: number) => void;
//     wayfindBetweenWaypoints: (originId: number, destinationId: number) => void;
//     drawNavigationPath: (
//       pathId: string,
//       shouldFocus?: boolean,
//       style?: JIBESTREAM_STYLE
//     ) => void;
//     styleUnitsForDestination: (
//       destination: JIBESTREAM_DESTINATION,
//       style?: JIBESTREAM_STYLE
//     ) => void;
//     styleShape: (id: number, style?: JIBESTREAM_STYLE) => void;
//   };
//# sourceMappingURL=SendCommand.js.map