import { RideStatusCodeType } from "../customer/constants"; import { LocationObjectType } from "../base/types"; import { DriverStatusCodeType } from "./constants"; declare type DriverRideType = { rideId: String; rideStatusCode: RideStatusCodeType; origin?: { place: string; latitude: string; longitude: string; }; destination?: { place: string; latitude: string; longitude: string; }; }; export declare type DriverType = { fname: String; lname: String; phone: String; picture: String; rating: Number; }; declare type DriverRideTypeWithOriginDestination = { rideStatusCode: 100; origin: { place: string; latitude: string; longitude: string; }; destination: { place: string; latitude: string; longitude: string; }; } & DriverRideType; export declare type CustomerType = { customerId: String; fname: String; lname: String; phone: String; rating: Number; picture: String; location?: LocationObjectType; }; declare type DriverStateTypeIdle = { status: 'IDLE'; statusCode: 300; ride?: null; }; declare type DriverStatusNotAvailable = { status: 'NOTAVAILABLE'; statusCode: 305; ride?: null; }; declare type DriverStateTypeIncomingCall = { status: 'CALL'; statusCode: 301; ride: DriverRideTypeWithOriginDestination; customer: CustomerType; }; declare type DriverStateTypeAcceptSuccess = { status: 'ONTHEWAY'; statusCode: 302; ride: DriverRideType & { rideStatusCode: 104; }; }; declare type DriverStateTypeRiderAborted = { status: 'RIDERCANCELLED'; statusCode: 309; ride: DriverRideType & { rideStatusCode: 106; }; }; declare type DriverStateTypeDriverAborted = { status: 'DRIVERCANCELLED'; statusCode: 310; ride: DriverRideType & { rideStatusCode: 105; }; }; declare type SuccessAccept = { success: boolean; accept: boolean; }; declare type DriverStateTypeTakePhotoBeforeStart = { status: 'ENROUTEPIC'; statusCode: 312; ride: DriverRideType & { rideStatusCode: 109; }; }; declare type DriverStateTypeStarted = { status: 'ENROUTE'; statusCode: 303; ride: DriverRideType & { rideStatusCode: 107; }; }; declare type DriverStateTypeTakePhotoBeforeEnd = { status: 'COMPLETEPIC'; statusCode: 313; ride: DriverRideType & { rideStatusCode: 110; }; }; declare type DriverFareType = { fare: Number; tripTime: Number; waitingTime: Number; farePerHr: Number; driverPayout: Number; }; declare type DriverStateTypeRideEnded = { status: 'COMPLETED'; statusCode: 311; ride: DriverRideType & { rideStatusCode: 108; fareObj: DriverFareType; }; }; export declare type DriverStateDataType = { userId: String; status: String; statusCode: DriverStatusCodeType; ride?: DriverRideType; customer?: CustomerType; } & SuccessAccept & (DriverStateTypeIdle | DriverStatusNotAvailable | DriverStateTypeIncomingCall | DriverStateTypeAcceptSuccess | DriverStateTypeRiderAborted | DriverStateTypeDriverAborted | DriverStateTypeTakePhotoBeforeStart | DriverStateTypeStarted | DriverStateTypeTakePhotoBeforeEnd | DriverStateTypeRideEnded); export declare type CustomerLocationResponseType = { customerLocation: LocationObjectType; }; export {};