waze-api
Version:
Node.js wrapper for waze.
143 lines (142 loc) • 3.33 kB
TypeScript
export interface WazeCoord {
y: number;
x: number;
}
export interface WazeSegment {
fromNode: number;
ID: number;
toNode: number;
isForward: boolean;
}
export interface WazeComment {
reportMillis: number;
text: string;
isThumbsUp: boolean;
}
export interface WazeInfoOptions {
hideUsers?: boolean;
hideAlerts?: boolean;
hideTraffic?: boolean;
}
export interface WazeAlertInfo {
country: string;
city: string;
inscale: boolean;
isJamUnifiedAlert: boolean;
reportRating: number;
confidence: number;
reliability: number;
nImages: number;
type: string;
uuid: string;
speed: number;
reportMood: number;
roadType: number;
magvar: number;
showFacebookPic: boolean;
subtype: string;
street: string;
additionalInfo: string;
wazeData: string;
reportDescription?: string;
location: WazeCoord;
id: number;
pubMillis: number;
reportBy?: string;
nComments?: number;
comments?: WazeComment[];
nThumbsUp?: number;
}
export interface WazeTrafficInfo {
severity: number;
country: string;
city: string;
line: WazeCoord[];
segments: WazeSegment[];
level: number;
speedKMH: number;
length: number;
turnType: string;
type: string;
uuid: number;
endNode: string;
speed: number;
roadType: number;
delay: number;
updateMillis: number;
street: string;
id: number;
pubMillis: number;
blockDescription?: string;
blockingAlertUuid?: string;
blockExpiration?: number;
blockingAlertID?: number;
blockType?: string;
blockStartTime?: number;
blockUpdate?: number;
causeAlert?: WazeAlertInfo;
}
export interface WazeUserInfo {
fleet: string;
magvar: number;
inscale: boolean;
mood: number;
addon: number;
ping: number;
location: WazeCoord;
id: string;
userName: string;
speed: number;
ingroup: boolean;
}
export interface WazeInfoResponse {
endTimeMillis: number;
startTimeMillis: number;
startTime: string;
endTime: string;
jams?: WazeTrafficInfo[];
alerts?: WazeAlertInfo[];
users?: WazeUserInfo[];
}
export interface WazeHistogram {
timeToLeave: string;
eta: string;
routeLengthInMinutes: number;
text: string;
}
export interface WazePathsOptions {
from: WazeCoord;
to: WazeCoord;
nPaths: number;
useCase: "LIVEMAP_PLANNING";
interval: number;
arriveAt: boolean;
}
export interface WazePathsResponse {
alternatives: {
coords: WazeCoord[];
response: {
routeName: string;
areas: any[];
requiredPermits: any[];
totalLength: number;
totalSeconds: number;
passesThroughDangerArea: boolean;
isToll: boolean;
isHOV: boolean;
isFastest: boolean;
jams: WazeTrafficInfo[];
alerts: WazeAlertInfo[];
label: {
mapViewLabel: {
routeTypeLabel: string;
};
extraInfoLabel: {
routeTypeLabel: string;
trafficStatusLabel: string;
};
};
etaHistograms?: WazeHistogram[];
};
}[];
}