declare module "react-native-maps" { import * as React from 'react'; import { Animated } from 'react-native'; export interface Region { latitude: number longitude: number latitudeDelta: number longitudeDelta: number } export interface LatLng { latitude: number longitude: number } export interface Point { x: number y: number } export class AnimatedRegion extends Animated.AnimatedWithChildren { latitude: Animated.Value longitude: Animated.Value latitudeDelta: Animated.Value longitudeDelta: Animated.Value constructor(LatLng); setValue(value: Region): void; setOffset(offset: Region): void; flattenOffset(): void; __getValue(): Region; __attach(): void; __detach(): void; stopAnimation(callback?: Function): void; addListener(callback: Function): string; removeListener(id: string): void; spring(config: any): any; timing(config: any): any; } export interface MapViewProps { provider?: 'google'; style: any; customMapStyle?: any[]; customMapStyleString?: string; showsUserLocation?: boolean; userLocationAnnotationTitle?: string; showsMyLocationButton?: boolean; followsUserLocation?: boolean; showsPointsOfInterest?: boolean; showsCompass?: boolean; zoomEnabled?: boolean; zoomControlEnabled?: boolean; rotateEnabled?: boolean; cacheEnabled?: boolean; loadingEnabled?: boolean; loadingBackgroundColor?: any; loadingIndicatorColor?: any; scrollEnabled?: boolean; pitchEnabled?: boolean; toolbarEnabled?: boolean; moveOnMarkerPress?: boolean; showsScale?: boolean; showsBuildings?: boolean; showsTraffic?: boolean; showsIndoors?: boolean; showsIndoorLevelPicker?: boolean; mapType?: 'standard' | 'satellite' | 'hybrid' | 'terrain' | 'none' | 'mutedStandard'; region?: { latitude: number; longitude: number; latitudeDelta: number; longitudeDelta: number; }; initialRegion?: { latitude: number; longitude: number; latitudeDelta: number; longitudeDelta: number; }; liteMode?: boolean; maxDelta?: number; minDelta?: number; legalLabelInsets?: any; onChange?: Function; onMapReady?: Function; onRegionChange?: (region: Region) => void; onRegionChangeComplete?: (region: Region) => void; onPress?: (value: { coordinate: LatLng, position: Point }) => void; onLayout?: Function; onLongPress?: (value: { coordinate: LatLng, position: Point }) => void; onPanDrag?: (value: {coordinate: LatLng, position: Point }) => void; onMarkerPress?: Function; onMarkerSelect?: Function; onMarkerDeselect?: Function; onCalloutPress?: Function; onMarkerDragStart?: (value: { coordinate: LatLng, position: Point }) => void; onMarkerDrag?: (value: { coordinate: LatLng, position: Point }) => void; onMarkerDragEnd?: (value: { coordinate: LatLng, position: Point }) => void; minZoomLevel?: number; maxZoomLevel?: number; kmlSrc?: string; } export default class MapView extends React.Component { animateToNavigation(location: LatLng, bearing: number, angle: number, duration?: number): void; animateToRegion(region: Region, duration?: number): void; animateToCoordinate(latLng: LatLng, duration?: number): void; animateToBearing(bearing: number, duration?: number): void; animateToViewingAngle(angle: number, duration?: number): void; fitToElements(animated: boolean): void; fitToSuppliedMarkers(markers: string[], animated: boolean): void; fitToCoordinates(coordinates?: LatLng[], options?:{}): void; setMapBoundaries(northEast: LatLng, southWest: LatLng): void; } export class MapViewAnimated extends React.Component { animateToNavigation(location: LatLng, bearing: number, angle: number, duration?: number): void; animateToRegion(region: Region, duration?: number): void; animateToCoordinate(latLng: LatLng, duration?: number): void; animateToBearing(bearing: number, duration?: number): void; animateToViewingAngle(angle: number, duration?: number): void; fitToElements(animated: boolean): void; fitToSuppliedMarkers(markers: string[], animated: boolean): void; fitToCoordinates(coordinates?: LatLng[], options?:{}): void; setMapBoundaries(northEast: LatLng, southWest: LatLng): void; } export type LineCapType = 'butt' | 'round' | 'square'; export type LineJoinType = 'miter' | 'round' | 'bevel'; export interface MarkerProps { identifier?: string; reuseIdentifier?: string; title?: string; description?: string; image?: any; opacity?: number; pinColor?: string; coordinate: { latitude: number; longitude: number } | AnimatedRegion; centerOffset?: { x: number; y: number }; calloutOffset?: { x: number; y: number }; anchor?: { x: number; y: number }; calloutAnchor?: { x: number; y: number }; flat?: boolean; draggable?: boolean; onPress?: (value: { coordinate: LatLng, position: Point }) => void; onSelect?: (value: { coordinate: LatLng, position: Point }) => void; onDeselect?: (value: { coordinate: LatLng, position: Point }) => void; onCalloutPress?: Function; onDragStart?: (value: { coordinate: LatLng, position: Point }) => void; onDrag?: (value: { coordinate: LatLng, position: Point }) => void; onDragEnd?: (value: { coordinate: LatLng, position: Point }) => void; zIndex?: number; style?: any; rotation?: number; tracksViewChanges?: boolean tracksInfoWindowChanges?: boolean } export interface MapPolylineProps { coordinates: { latitude: number; longitude: number; }[]; onPress?: Function; tappable?: boolean; fillColor?: string; strokeWidth?: number; strokeColor?: string; zIndex?: number; lineCap?: LineCapType; lineJoin?: LineJoinType; miterLimit?: number; geodesic?: boolean; lineDashPhase?: number; lineDashPattern?: number[]; } export interface MapPolygonProps { coordinates: { latitude: number; longitude: number; }[]; holes?: { latitude: number; longitude: number; }[][]; onPress?: Function; tappable?: boolean; strokeWidth?: number; strokeColor?: string; fillColor?: string; zIndex?: number; lineCap?: LineCapType; lineJoin?: LineJoinType; miterLimit?: number; geodesic?: boolean; lineDashPhase?: number; lineDashPattern?: number[]; } export interface MapCircleProps { center: { latitude: number; longitude: number }; radius: number; onPress?: Function; strokeWidth?: number; strokeColor?: string; fillColor?: string; zIndex?: number; lineCap?: LineCapType; lineJoin?: LineJoinType; miterLimit?: number; lineDashPhase?: number; lineDashPattern?: number[]; } export interface MapUrlTileProps { urlTemplate: string; zIndex?: number; } export interface MapLocalTileProps { pathTemplate: string; tileSize: number; zIndex?: number; } export interface MapOverlayProps { image?: any; bounds: LatLng[]; } export interface MapCalloutProps { tooltip?: boolean; onPress?: Function; style?: any; } export class Marker extends React.Component { showCallout(): void; hideCallout(): void; animateMarkerToCoordinate(coordinate: LatLng, duration: number): void; } export class Polyline extends React.Component { } export class Polygon extends React.Component { } export class Circle extends React.Component { } export class UrlTile extends React.Component { } export class LocalTile extends React.Component { } export class Overlay extends React.Component { } export class Callout extends React.Component { } export class MarkerAnimated extends React.Component { showCallout(): void; hideCallout(): void; animateMarkerToCoordinate(coordinate: LatLng, duration: number): void; } export class OverlayAnimated extends React.Component { } }