import { TextInputProps, TouchableOpacityProps } from "react-native"; declare interface Driver { id: number; first_name: string; last_name: string; profile_image_url: string; car_image_url: string; car_seats: number; rating: number; service: string; online?: boolean; latitude?: number | null; longitude?: number | null; user_id?: string | null; car_model?: string | null; last_seen?: string | null; } declare interface MarkerData { latitude: number; longitude: number; id: number; title?: string; profile_image_url: string; car_image_url: string; car_seats: number; rating: number; first_name: string; last_name: string; service?: string; online?: boolean; car_model?: string | null; time?: number; price?: string; } declare interface MapProps { destinationLatitude?: number; destinationLongitude?: number; onDriverTimesCalculated?: (driversWithTimes: MarkerData[]) => void; selectedDriver?: number | null; onMapReady?: () => void; } declare interface Ride { ride_id?: number; origin_address: string; destination_address: string; origin_latitude: number; origin_longitude: number; destination_latitude: number; destination_longitude: number; ride_time: number; fare_price: number; payment_status: string; status: string; service: string; driver_id: number | null; user_id?: string; payment_order_id?: string | null; created_at: string; completed_at?: string | null; cancelled_at?: string | null; driver: { id: number | null; first_name: string | null; last_name: string | null; car_seats: number | null; profile_image_url: string | null; car_image_url: string | null; rating: number | null; service: string | null; car_model: string | null; }; } declare interface RideOffer { id: number; ride_id: number; driver_id: number; status: string; offered_at: string; responded_at: string | null; ride?: Ride; } declare interface NearbyPlace { name: string; address: string; latitude: number; longitude: number; /** Straight-line distance from the rider. */ distanceMeters?: number; /** Distance and time along the actual driving route, when one was found. */ routeDistanceMeters?: number; routeDurationSeconds?: number; category?: string; } declare interface ButtonProps extends TouchableOpacityProps { title: string; bgVariant?: "primary" | "secondary" | "danger" | "outline" | "success"; textVariant?: "primary" | "default" | "secondary" | "danger" | "success"; iconLeft?: React.ComponentType; iconRight?: React.ComponentType; className?: string; } declare interface GoogleInputProps { icon?: string; initialLocation?: string; containerStyles?: string; textInputBackgroundColor?: string; handlePress: ({ latitude, longitude, address, }: { latitude: number; longitude: number; address: string; }) => void; } declare interface InputFieldProps extends TextInputProps { label: string; icon?: any; secureTextEntry?: boolean; labelStyles?: string; containerStyles?: string; inputStyles?: string; iconStyles?: string; className?: string; } declare interface PaymentProps { fullName: string; email: string; amount: string; driverId: number; rideTime: number; } declare interface LocationStore { userLatitude: number | null; userLongitude: number | null; userAddress: string | null; destinationLatitude: number | null; destinationLongitude: number | null; destinationAddress: string | null; setUserLocation: ({ latitude, longitude, address, }: { latitude: number; longitude: number; address: string; }) => void; setDestinationLocation: ({ latitude, longitude, address, }: { latitude: number; longitude: number; address: string; }) => void; } declare interface DriverStore { drivers: MarkerData[]; selectedDriver: number | null; setSelectedDriver: (driverId: number) => void; setDrivers: (drivers: MarkerData[]) => void; clearSelectedDriver: () => void; } declare interface DriverCardProps { item: MarkerData; selected: number; setSelected: () => void; }