import codegenNativeComponent, { type NativeComponentType, } from 'react-native/Libraries/Utilities/codegenNativeComponent'; import type { BubblingEventHandler, DirectEventHandler, Double, } from 'react-native/Libraries/Types/CodegenTypes'; import type { NativeMethods, ViewProps } from 'react-native'; import { Component } from 'react'; import { codegenNativeCommands } from 'react-native'; export interface InitialRegion { latitude: Double; longitude: Double; zoom?: Double; } export interface Point { latitude: Double; longitude: Double; } export interface DgisMapNativeProps extends ViewProps { onTap?: BubblingEventHandler; onLongTouch?: BubblingEventHandler; onMapLoaded?: DirectEventHandler; center?: InitialRegion; } export type DgisMapNativeRef = Component & Readonly; export type DgisMapComponentType = NativeComponentType & Readonly; export interface DgisMapNativeCommands { fitAllMarkers: ( viewRef: React.ElementRef, args: Array< Readonly<{ duration?: number; }> > ) => void; setZoom: ( viewRef: React.ElementRef, args: Array< Readonly<{ zoom: Double; duration: Double; }> > ) => void; zoomIn: (viewRef: React.ElementRef) => void; zoomOut: (viewRef: React.ElementRef) => void; } export const Commands = codegenNativeCommands({ supportedCommands: ['fitAllMarkers', 'setZoom', 'zoomIn', 'zoomOut'], }); export default codegenNativeComponent('DgisMapView');