// eslint-disable-next-line @react-native/no-deep-imports import codegenNativeComponent, {type NativeComponentType} from 'react-native/Libraries/Utilities/codegenNativeComponent'; import type {BubblingEventHandler, Double, Float} from 'react-native/Libraries/Types/CodegenTypes'; import {type ViewProps} from 'react-native'; import {type MarkerNativeCommands} from './commands/marker'; interface Point { lat: Double; lon: Double; } type Anchor = { x: Double; y: Double; } export interface MarkerNativeProps extends ViewProps { scale?: Float; rotated?: boolean; onPress?: BubblingEventHandler; point: Point; anchor?: Anchor; visible?: boolean; handled?: boolean; source?: string; zI?: Float; /** * Only meaningful when this Marker is a child of ClusteredYamap. * When true, the marker is added to the map's root object collection * instead of the cluster collection — it stays visible on every zoom * level and never merges into a cluster. Read once at mount; toggling * at runtime has no effect. */ excludeFromCluster?: boolean; } export type MarkerComponentType = NativeComponentType & Readonly; require('./commands/marker'); export default codegenNativeComponent('MarkerView');