import { RideStatusCodeType } from "./constants"; import { LocationArrayType, LocationObjectType } from "../base/types"; declare type RideType = { rideId: String; rideStatusCode: RideStatusCodeType; }; declare type CustomerStateDataTypeNoRide = { ride?: null; }; declare type CustomerStateDataTypeNoDriver = { ride: RideType & { rideStatusCode: 100 | 101 | 102 | 103 | 105 | 106; }; }; declare type CurrentDriverLocationType = { location?: LocationObjectType; eta?: { distance: Number; time: Number; }; }; export declare type CurrentDriverType = { driverId: String; fname: String; lname: String; phone: String; picture: String; rating: Number; } & CurrentDriverLocationType; declare type CustomerStateDataTypeWithDriver = { ride: RideType & { rideStatusCode: 104; }; driver: CurrentDriverType; }; declare type CustomerStateDataTypeWithMaybeDriver = { ride: RideType & { rideStatusCode: 107; }; driver?: CurrentDriverType; }; declare type FareType = { fare: Number; tripTime: Number; waitingTime: Number; farePerHr: Number; }; declare type CustomerStateDataTypeWithFare = { ride: RideType & { rideStatusCode: 108; fareObj: FareType; }; driver?: CurrentDriverType; }; declare type NearbyDriverType = { _id: String; driverId: String; location: LocationArrayType; }; export declare type CustomerStateDataType = { nearbyDrivers?: [NearbyDriverType]; userId?: String; unpaidRide?: { rideId: String; driverId: String; cardId: String; amount: Number; }; ride?: RideType; driver?: CurrentDriverType; } & (CustomerStateDataTypeNoRide | CustomerStateDataTypeNoDriver | CustomerStateDataTypeWithDriver | CustomerStateDataTypeWithMaybeDriver | CustomerStateDataTypeWithFare); export declare type CurrentDriverLocationResponseType = { driver: CurrentDriverLocationType; }; export declare type NearbyDriversResponseType = { drivers: [NearbyDriverType]; }; export {};