index.d.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import * as React from "react";
  2. import PropTypes from 'prop-types';
  3. import { StyleProp, ViewStyle } from "react-native";
  4. export interface Region {
  5. latitude: number;
  6. longitude: number;
  7. latitudeDelta: number;
  8. longitudeDelta: number;
  9. zoom: number;
  10. }
  11. export interface LatLng {
  12. latitude: number;
  13. longitude: number;
  14. }
  15. export interface ClusterData {
  16. id: number;
  17. siteName: string;
  18. latlng: LatLng;
  19. available: boolean;
  20. }
  21. export interface VbeClusterMapProps {
  22. style?: StyleProp<ViewStyle>;
  23. region: Region;
  24. data: ClusterData[];
  25. animation: boolean;
  26. showUserLocation: boolean;
  27. moveOnMarkerPress: boolean;
  28. onMapReady?: () => void;
  29. onMarkerPress?: (event: ClusterData) => void;
  30. }
  31. export declare class VbeClusterMap extends React.Component<VbeClusterMapProps, any> {
  32. static propTypes: {
  33. style: PropTypes.Requireable<any>,
  34. region: PropTypes.Requireable<Region>,
  35. data: PropTypes.Requireable<ClusterData[]>,
  36. animation: PropTypes.Requireable<boolean>,
  37. showUserLocation: PropTypes.Requireable<boolean>,
  38. moveOnMarkerPress: PropTypes.Requireable<boolean>,
  39. onMapReady: PropTypes.Requireable<() => any>,
  40. onMarkerPress: PropTypes.Requireable<(...args: ClusterData[]) => any>
  41. };
  42. static defaultProps: {
  43. animation: boolean;
  44. showUserLocation: boolean;
  45. moveOnMarkerPress: boolean;
  46. }
  47. }
  48. export default VbeClusterMap;