@caronashow/api 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
2
- import type { FullAddress } from "../../types/v1/address_pb";
2
+ import type { TimeWindow } from "./organization_pb";
3
3
  import type { TimeOfDay } from "../../types/v1/common_pb";
4
4
  import type { UserRank } from "../../types/v1/user_pb";
5
5
  import type { Timestamp } from "@bufbuild/protobuf/wkt";
@@ -16,13 +16,13 @@ export declare const file_caronashow_service_v1_home: GenFile;
16
16
  */
17
17
  export type ListRideSuggestionsRequest = Message<"caronashow.service.v1.ListRideSuggestionsRequest"> & {
18
18
  /**
19
- * Visible map area used to select route geometries and ride offers.
19
+ * Visible map area used to select safe route geometries and ride offers.
20
20
  *
21
21
  * @generated from field: caronashow.service.v1.MapViewport viewport = 1;
22
22
  */
23
23
  viewport?: MapViewport | undefined;
24
24
  /**
25
- * Commute leg for which routes, seat inventory, and estimates are requested.
25
+ * Commute leg for which route, seat, and schedule data is requested.
26
26
  *
27
27
  * @generated from field: caronashow.service.v1.CommuteDirection direction = 2;
28
28
  */
@@ -34,15 +34,21 @@ export type ListRideSuggestionsRequest = Message<"caronashow.service.v1.ListRide
34
34
  */
35
35
  export declare const ListRideSuggestionsRequestSchema: GenMessage<ListRideSuggestionsRequest>;
36
36
  /**
37
- * Contains complete synchronized map and drawer projections of one matching
38
- * result set. The service returns an error rather than either partial projection.
37
+ * Contains complete synchronized map and drawer projections of one published
38
+ * recommendation result set. The service returns an error rather than either
39
+ * partial projection. The Backend must validate the complete response key and
40
+ * retain any safe geometry needed for this response independently of Pooler's
41
+ * mutable operation rows.
39
42
  *
40
43
  * @generated from message caronashow.service.v1.ListRideSuggestionsResponse
41
44
  */
42
45
  export type ListRideSuggestionsResponse = Message<"caronashow.service.v1.ListRideSuggestionsResponse"> & {
43
46
  /**
44
- * Opaque identifier for this immutable matching snapshot. It identifies the
45
- * result but does not provide chronological ordering between responses.
47
+ * Non-enumerable opaque identifier for this immutable matching snapshot. It
48
+ * is scoped to the authenticated passenger and must not be a decimal database
49
+ * ID or a capability usable by another passenger. It does not provide
50
+ * chronological ordering between responses. Empty while availability is
51
+ * COMPUTING.
46
52
  *
47
53
  * @generated from field: string result_set_id = 1;
48
54
  */
@@ -62,11 +68,42 @@ export type ListRideSuggestionsResponse = Message<"caronashow.service.v1.ListRid
62
68
  */
63
69
  rankedSuggestions: RankedRideSuggestion[];
64
70
  /**
65
- * Server time at which this matching snapshot was produced.
71
+ * Server time at which the published matching snapshot was produced. Empty
72
+ * while availability is COMPUTING.
66
73
  *
67
74
  * @generated from field: google.protobuf.Timestamp generated_at = 4;
68
75
  */
69
76
  generatedAt?: Timestamp | undefined;
77
+ /**
78
+ * Whether a published result is available for the requested passenger and
79
+ * direction. A successful response must set this field explicitly.
80
+ *
81
+ * @generated from field: caronashow.service.v1.RecommendationAvailability availability = 5;
82
+ */
83
+ availability: RecommendationAvailability;
84
+ /**
85
+ * True when a newer Backend batch is being coordinated while this response
86
+ * still serves the last valid published result. It is also true for a
87
+ * COMPUTING response with no published set; it is false for UNAVAILABLE.
88
+ *
89
+ * @generated from field: bool refresh_in_progress = 6;
90
+ */
91
+ refreshInProgress: boolean;
92
+ /**
93
+ * Number of candidates in the published result set before viewport filtering.
94
+ * Zero is meaningful only with EXHAUSTED; it is zero while COMPUTING. Clients
95
+ * derive the visible count from either projection array length.
96
+ *
97
+ * @generated from field: int32 result_candidate_count = 7;
98
+ */
99
+ resultCandidateCount: number;
100
+ /**
101
+ * IANA timezone used to interpret all organization schedule fields in this
102
+ * response. Empty while availability is COMPUTING or UNAVAILABLE.
103
+ *
104
+ * @generated from field: string organization_time_zone = 8;
105
+ */
106
+ organizationTimeZone: string;
70
107
  };
71
108
  /**
72
109
  * Describes the message caronashow.service.v1.ListRideSuggestionsResponse.
@@ -87,8 +124,8 @@ export type MapViewport = Message<"caronashow.service.v1.MapViewport"> & {
87
124
  */
88
125
  southwest?: LatLng | undefined;
89
126
  /**
90
- * Northeast corner of the visible rectangle. The rectangle must not cross
91
- * the antimeridian and must fit the server's supported maximum search area.
127
+ * Northeast corner of the visible rectangle. The rectangle must not cross the
128
+ * antimeridian or exceed the server's supported maximum search area.
92
129
  *
93
130
  * @generated from field: google.type.LatLng northeast = 2;
94
131
  */
@@ -113,8 +150,9 @@ export declare const MapViewportSchema: GenMessage<MapViewport>;
113
150
  */
114
151
  export type MapRideSuggestion = Message<"caronashow.service.v1.MapRideSuggestion"> & {
115
152
  /**
116
- * Opaque passenger-scoped identifier shared with the ranked projection. It
117
- * remains stable while the matched offer and commute direction are unchanged.
153
+ * Non-enumerable opaque passenger-scoped identifier shared with the ranked
154
+ * projection. It must not encode a database candidate ID and must be
155
+ * authorized against the authenticated passenger and result set.
118
156
  *
119
157
  * @generated from field: string suggestion_id = 1;
120
158
  */
@@ -126,18 +164,28 @@ export type MapRideSuggestion = Message<"caronashow.service.v1.MapRideSuggestion
126
164
  */
127
165
  rank: number;
128
166
  /**
129
- * Driver-side route endpoint shown by the marker. This is the route start
130
- * toward the organization and the route end when leaving the organization.
167
+ * Server-generated coarse center for the driver's endpoint. This field must
168
+ * never expose an exact home address.
131
169
  *
132
170
  * @generated from field: google.type.LatLng driver_endpoint_location = 3;
133
171
  */
134
172
  driverEndpointLocation?: LatLng | undefined;
135
173
  /**
136
- * Route path and cache identity used by the map renderer.
174
+ * Safe route path and cache identity used by the map renderer. For the first
175
+ * organization-origin release, the path starts at the organization area and
176
+ * ends at coarse participant home areas. It must not expose any participant's
177
+ * exact home address or a raw Pooler stop sequence.
137
178
  *
138
179
  * @generated from field: caronashow.service.v1.RouteGeometry route_geometry = 4;
139
180
  */
140
181
  routeGeometry?: RouteGeometry | undefined;
182
+ /**
183
+ * Explicit uncertainty area for the endpoint. Clients should use this
184
+ * center and radius instead of treating the point as exact.
185
+ *
186
+ * @generated from field: caronashow.service.v1.ApproximateLocation driver_endpoint_area = 5;
187
+ */
188
+ driverEndpointArea?: ApproximateLocation | undefined;
141
189
  };
142
190
  /**
143
191
  * Describes the message caronashow.service.v1.MapRideSuggestion.
@@ -146,25 +194,30 @@ export type MapRideSuggestion = Message<"caronashow.service.v1.MapRideSuggestion
146
194
  export declare const MapRideSuggestionSchema: GenMessage<MapRideSuggestion>;
147
195
  /**
148
196
  * Map-ready geometry for one direction of a driver's organization commute.
197
+ * The Backend must materialize or retain this safe projection at publication;
198
+ * a later Pooler operation cleanup must not make a published card unreadable.
149
199
  *
150
200
  * @generated from message caronashow.service.v1.RouteGeometry
151
201
  */
152
202
  export type RouteGeometry = Message<"caronashow.service.v1.RouteGeometry"> & {
153
203
  /**
154
- * Cache identifier for this exact encoded path, precision, direction, and
155
- * simplification level. Any encoded-polyline change produces a new ID.
204
+ * Non-enumerable opaque cache identifier for this exact encoded path,
205
+ * precision, direction, and simplification level. It must not be a raw
206
+ * Pooler route ID; any encoded-polyline change produces a new ID.
156
207
  *
157
208
  * @generated from field: string route_geometry_id = 1;
158
209
  */
159
210
  routeGeometryId: string;
160
211
  /**
161
- * Google Encoded Polyline Algorithm Format path at precision 5.
212
+ * Google Encoded Polyline Algorithm Format path at precision 5. The Backend
213
+ * must simplify/coarsen the path before encoding it for pre-connection use.
162
214
  *
163
215
  * @generated from field: string encoded_polyline = 2;
164
216
  */
165
217
  encodedPolyline: string;
166
218
  /**
167
- * Bounds of the complete route, including portions outside the viewport.
219
+ * Safe bounds enclosing the displayed route. Bounds must follow the same
220
+ * privacy treatment as the route and must not recover an exact endpoint.
168
221
  *
169
222
  * @generated from field: caronashow.service.v1.RouteBounds bounds = 3;
170
223
  */
@@ -176,7 +229,7 @@ export type RouteGeometry = Message<"caronashow.service.v1.RouteGeometry"> & {
176
229
  */
177
230
  export declare const RouteGeometrySchema: GenMessage<RouteGeometry>;
178
231
  /**
179
- * Geographic bounds enclosing a complete route geometry.
232
+ * Geographic bounds enclosing a complete safe route geometry.
180
233
  *
181
234
  * @generated from message caronashow.service.v1.RouteBounds
182
235
  */
@@ -199,6 +252,68 @@ export type RouteBounds = Message<"caronashow.service.v1.RouteBounds"> & {
199
252
  * Use `create(RouteBoundsSchema)` to create a new message.
200
253
  */
201
254
  export declare const RouteBoundsSchema: GenMessage<RouteBounds>;
255
+ /**
256
+ * Server-generated uncertainty area for a pre-connection location.
257
+ *
258
+ * @generated from message caronashow.service.v1.ApproximateLocation
259
+ */
260
+ export type ApproximateLocation = Message<"caronashow.service.v1.ApproximateLocation"> & {
261
+ /**
262
+ * Coarse center of the neighborhood-level area. It is not an address pin and
263
+ * must equal driver_endpoint_location when both are set.
264
+ *
265
+ * @generated from field: google.type.LatLng center = 1;
266
+ */
267
+ center?: LatLng | undefined;
268
+ /**
269
+ * Positive radius in meters that communicates location uncertainty to the map
270
+ * UI. The Backend must not choose a radius that permits exact-address recovery.
271
+ *
272
+ * @generated from field: uint32 radius_meters = 2;
273
+ */
274
+ radiusMeters: number;
275
+ };
276
+ /**
277
+ * Describes the message caronashow.service.v1.ApproximateLocation.
278
+ * Use `create(ApproximateLocationSchema)` to create a new message.
279
+ */
280
+ export declare const ApproximateLocationSchema: GenMessage<ApproximateLocation>;
281
+ /**
282
+ * Neighborhood-level address summary safe to show before a ride connection.
283
+ *
284
+ * @generated from message caronashow.service.v1.ApproximateAddress
285
+ */
286
+ export type ApproximateAddress = Message<"caronashow.service.v1.ApproximateAddress"> & {
287
+ /**
288
+ * Neighborhood or sublocality; street and number are never included.
289
+ *
290
+ * @generated from field: string neighborhood = 1;
291
+ */
292
+ neighborhood: string;
293
+ /**
294
+ * City or municipality.
295
+ *
296
+ * @generated from field: string city = 2;
297
+ */
298
+ city: string;
299
+ /**
300
+ * State or administrative area.
301
+ *
302
+ * @generated from field: string state = 3;
303
+ */
304
+ state: string;
305
+ /**
306
+ * ISO 3166-1 alpha-2 country code.
307
+ *
308
+ * @generated from field: string country = 4;
309
+ */
310
+ country: string;
311
+ };
312
+ /**
313
+ * Describes the message caronashow.service.v1.ApproximateAddress.
314
+ * Use `create(ApproximateAddressSchema)` to create a new message.
315
+ */
316
+ export declare const ApproximateAddressSchema: GenMessage<ApproximateAddress>;
202
317
  /**
203
318
  * Rich ride card shown in the passenger's ranked suggestions drawer.
204
319
  *
@@ -206,8 +321,9 @@ export declare const RouteBoundsSchema: GenMessage<RouteBounds>;
206
321
  */
207
322
  export type RankedRideSuggestion = Message<"caronashow.service.v1.RankedRideSuggestion"> & {
208
323
  /**
209
- * Opaque passenger-scoped identifier shared with the map projection. It
210
- * remains stable while the matched offer and commute direction are unchanged.
324
+ * Non-enumerable opaque passenger-scoped identifier shared with the map
325
+ * projection. It must not encode a database candidate ID and must be
326
+ * authorized against the authenticated passenger and result set.
211
327
  *
212
328
  * @generated from field: string suggestion_id = 1;
213
329
  */
@@ -219,35 +335,31 @@ export type RankedRideSuggestion = Message<"caronashow.service.v1.RankedRideSugg
219
335
  */
220
336
  rank: number;
221
337
  /**
222
- * Public driver profile data needed by the suggestion card.
338
+ * Public driver profile data displayed before a ride request.
223
339
  *
224
340
  * @generated from field: caronashow.service.v1.DriverSummary driver = 3;
225
341
  */
226
342
  driver?: DriverSummary | undefined;
227
343
  /**
228
- * Vehicle details safe to display while browsing this ride offer.
229
- *
230
- * @generated from field: caronashow.service.v1.VehicleSummary vehicle = 4;
231
- */
232
- vehicle?: VehicleSummary | undefined;
233
- /**
234
- * Driver-side route endpoint opposite the organization. This is the route
235
- * start toward the organization and the route end when leaving it.
344
+ * Neighborhood-level endpoint summary safe to show before a ride
345
+ * connection. Street, number, postal code, place ID, and exact coordinates
346
+ * are never included.
236
347
  *
237
- * @generated from field: caronashow.types.v1.FullAddress driver_endpoint_address = 5;
348
+ * @generated from field: caronashow.service.v1.ApproximateAddress driver_endpoint_address = 5;
238
349
  */
239
- driverEndpointAddress?: FullAddress | undefined;
350
+ driverEndpointAddress?: ApproximateAddress | undefined;
240
351
  /**
241
- * Offer-specific seat inventory for this direction of travel.
352
+ * Offer-specific seat inventory for this directional ride suggestion.
242
353
  *
243
354
  * @generated from field: caronashow.service.v1.SeatAvailability seats = 6;
244
355
  */
245
356
  seats?: SeatAvailability | undefined;
246
357
  /**
247
- * Driver's usual arrival time at the organization for
248
- * COMMUTE_DIRECTION_TO_ORGANIZATION, or departure time from the organization
249
- * for COMMUTE_DIRECTION_FROM_ORGANIZATION. Interpreted in the organization's
250
- * local timezone.
358
+ * Optional exact organization-local time when a trusted Backend calculation
359
+ * exists for a custom schedule. For COMMUTE_DIRECTION_FROM_ORGANIZATION,
360
+ * this is departure from the organization; for TO_ORGANIZATION, it is
361
+ * arrival at the organization. Clients must prefer
362
+ * organization_arrival_window and hide the schedule when both are absent.
251
363
  *
252
364
  * @generated from field: caronashow.types.v1.TimeOfDay organization_time = 7;
253
365
  */
@@ -259,6 +371,46 @@ export type RankedRideSuggestion = Message<"caronashow.service.v1.RankedRideSugg
259
371
  * @generated from field: bool restricted_to_vulnerable_group = 8;
260
372
  */
261
373
  restrictedToVulnerableGroup: boolean;
374
+ /**
375
+ * Direction-specific organization window associated with the driver's named
376
+ * organization shift. For COMMUTE_DIRECTION_FROM_ORGANIZATION, this carries
377
+ * the shift's departure window; for TO_ORGANIZATION, it carries the arrival
378
+ * window. It is interpreted using organization_time_zone and is the preferred
379
+ * schedule display for the first organization-origin release. The historical
380
+ * field name is retained for wire and source compatibility. It is absent for
381
+ * a custom schedule unless the Backend can derive a meaningful window;
382
+ * clients may use the exact-time field as a fallback.
383
+ *
384
+ * @generated from field: caronashow.service.v1.TimeWindow organization_arrival_window = 10;
385
+ */
386
+ organizationArrivalWindow?: TimeWindow | undefined;
387
+ /**
388
+ * Optional finite, nonnegative route distance from the published candidate,
389
+ * in kilometers. The Backend maps the Pooler result and does not ask the
390
+ * browser to calculate it.
391
+ *
392
+ * @generated from field: optional double route_distance_km = 11;
393
+ */
394
+ routeDistanceKm?: number | undefined;
395
+ /**
396
+ * Optional finite, nonnegative route duration from the published candidate,
397
+ * in seconds. The Backend maps the Pooler result and does not ask the browser
398
+ * to calculate it.
399
+ *
400
+ * @generated from field: optional double route_duration_seconds = 12;
401
+ */
402
+ routeDurationSeconds?: number | undefined;
403
+ /**
404
+ * Optional finite, nonnegative additional duration incurred by the driver
405
+ * for this passenger, relative to the driver's direct baseline route for the
406
+ * requested commute direction. For the first supported direction, that route
407
+ * starts at the organization and ends at the driver's home. The Backend
408
+ * derives it from the same published snapshot; the browser must not calculate
409
+ * it.
410
+ *
411
+ * @generated from field: optional double driver_detour_duration_seconds = 13;
412
+ */
413
+ driverDetourDurationSeconds?: number | undefined;
262
414
  };
263
415
  /**
264
416
  * Describes the message caronashow.service.v1.RankedRideSuggestion.
@@ -272,7 +424,8 @@ export declare const RankedRideSuggestionSchema: GenMessage<RankedRideSuggestion
272
424
  */
273
425
  export type DriverSummary = Message<"caronashow.service.v1.DriverSummary"> & {
274
426
  /**
275
- * Stable driver identifier used to open the public driver profile.
427
+ * Non-enumerable opaque driver identifier used by a future public-profile
428
+ * route; it must not be a database identity or an unauthenticated capability.
276
429
  *
277
430
  * @generated from field: string driver_id = 1;
278
431
  */
@@ -284,7 +437,8 @@ export type DriverSummary = Message<"caronashow.service.v1.DriverSummary"> & {
284
437
  */
285
438
  firstName: string;
286
439
  /**
287
- * URL of the driver's profile avatar.
440
+ * Absolute URL of a resolved avatar asset, when the asset contract permits
441
+ * it. Empty means the UI must use an initials fallback.
288
442
  *
289
443
  * @generated from field: string avatar_url = 3;
290
444
  */
@@ -296,53 +450,33 @@ export type DriverSummary = Message<"caronashow.service.v1.DriverSummary"> & {
296
450
  */
297
451
  rank: UserRank;
298
452
  /**
299
- * Aggregate passenger rating from 0.0 to 5.0; zero when not yet rated.
453
+ * Aggregate passenger rating from 0.0 to 5.0; zero means no aggregate is
454
+ * available yet.
300
455
  *
301
456
  * @generated from field: double rating = 5;
302
457
  */
303
458
  rating: number;
304
459
  /**
305
- * Nonnegative number of ratings included in rating; zero when not yet rated.
460
+ * Nonnegative number of ratings included in the aggregate rating, when
461
+ * available. Absence means the Backend has no value; clients must not display
462
+ * a fabricated zero.
306
463
  *
307
- * @generated from field: int32 rating_count = 6;
464
+ * @generated from field: optional int32 rating_count = 6;
308
465
  */
309
- ratingCount: number;
466
+ ratingCount?: number | undefined;
310
467
  /**
311
- * Nonnegative number of completed rides used as an additional trust signal.
468
+ * Nonnegative number of completed rides, when available. Absence means the
469
+ * Backend has no value; clients must not display a fabricated zero.
312
470
  *
313
- * @generated from field: int32 completed_rides = 7;
471
+ * @generated from field: optional int32 completed_rides = 7;
314
472
  */
315
- completedRides: number;
473
+ completedRides?: number | undefined;
316
474
  };
317
475
  /**
318
476
  * Describes the message caronashow.service.v1.DriverSummary.
319
477
  * Use `create(DriverSummarySchema)` to create a new message.
320
478
  */
321
479
  export declare const DriverSummarySchema: GenMessage<DriverSummary>;
322
- /**
323
- * Vehicle details safe to display while browsing ride suggestions.
324
- *
325
- * @generated from message caronashow.service.v1.VehicleSummary
326
- */
327
- export type VehicleSummary = Message<"caronashow.service.v1.VehicleSummary"> & {
328
- /**
329
- * Vehicle make and model (e.g. "Honda Fit 2019").
330
- *
331
- * @generated from field: string model = 1;
332
- */
333
- model: string;
334
- /**
335
- * Vehicle exterior color (e.g. "Prata").
336
- *
337
- * @generated from field: string color = 2;
338
- */
339
- color: string;
340
- };
341
- /**
342
- * Describes the message caronashow.service.v1.VehicleSummary.
343
- * Use `create(VehicleSummarySchema)` to create a new message.
344
- */
345
- export declare const VehicleSummarySchema: GenMessage<VehicleSummary>;
346
480
  /**
347
481
  * Offer-specific seat inventory for one directional ride suggestion.
348
482
  *
@@ -350,17 +484,20 @@ export declare const VehicleSummarySchema: GenMessage<VehicleSummary>;
350
484
  */
351
485
  export type SeatAvailability = Message<"caronashow.service.v1.SeatAvailability"> & {
352
486
  /**
353
- * Positive number of passenger seats offered for this commute leg.
487
+ * Positive number of passenger seats offered by the selected vehicle.
354
488
  *
355
489
  * @generated from field: int32 offered_seats = 1;
356
490
  */
357
491
  offeredSeats: number;
358
492
  /**
359
- * Currently available seats, from zero through offered_seats.
493
+ * Current available seats when the request/capacity subsystem supplies it.
494
+ * Absence means seat availability is not part of the read contract; clients
495
+ * must show offered capacity without treating zero as remaining capacity. When
496
+ * present, the Backend must return 0 <= available_seats <= offered_seats.
360
497
  *
361
- * @generated from field: int32 available_seats = 2;
498
+ * @generated from field: optional int32 available_seats = 2;
362
499
  */
363
- availableSeats: number;
500
+ availableSeats?: number | undefined;
364
501
  };
365
502
  /**
366
503
  * Describes the message caronashow.service.v1.SeatAvailability.
@@ -380,13 +517,15 @@ export declare enum CommuteDirection {
380
517
  */
381
518
  UNSPECIFIED = 0,
382
519
  /**
383
- * Driver and passenger travel toward the organization.
520
+ * Driver and passenger travel toward the organization. Kept in the enum for
521
+ * forward compatibility; not supported by the first Backend release.
384
522
  *
385
523
  * @generated from enum value: COMMUTE_DIRECTION_TO_ORGANIZATION = 1;
386
524
  */
387
525
  TO_ORGANIZATION = 1,
388
526
  /**
389
- * Driver and passenger leave the organization for their return trip.
527
+ * Driver and passenger leave the organization toward participant home
528
+ * addresses. Supported by the first Backend recommendation release.
390
529
  *
391
530
  * @generated from enum value: COMMUTE_DIRECTION_FROM_ORGANIZATION = 2;
392
531
  */
@@ -396,15 +535,71 @@ export declare enum CommuteDirection {
396
535
  * Describes the enum caronashow.service.v1.CommuteDirection.
397
536
  */
398
537
  export declare const CommuteDirectionSchema: GenEnum<CommuteDirection>;
538
+ /**
539
+ * Availability of the authenticated passenger's published recommendation set.
540
+ * This describes the set before viewport filtering; projection array lengths
541
+ * describe the filtered projection returned in this response.
542
+ *
543
+ * @generated from enum caronashow.service.v1.RecommendationAvailability
544
+ */
545
+ export declare enum RecommendationAvailability {
546
+ /**
547
+ * Default value; a successful response must never use it.
548
+ *
549
+ * @generated from enum value: RECOMMENDATION_AVAILABILITY_UNSPECIFIED = 0;
550
+ */
551
+ UNSPECIFIED = 0,
552
+ /**
553
+ * No published result exists yet because the Backend batch is queued,
554
+ * running, restoring, or otherwise has not produced a readable snapshot.
555
+ *
556
+ * @generated from enum value: RECOMMENDATION_AVAILABILITY_COMPUTING = 1;
557
+ */
558
+ COMPUTING = 1,
559
+ /**
560
+ * A published result exists and contains at least one safe suggestion. It
561
+ * may contain fewer than the configured maximum after successful exhaustion.
562
+ *
563
+ * @generated from enum value: RECOMMENDATION_AVAILABILITY_READY = 2;
564
+ */
565
+ READY = 2,
566
+ /**
567
+ * A published result exists and contains zero candidates after exhaustion.
568
+ *
569
+ * @generated from enum value: RECOMMENDATION_AVAILABILITY_EXHAUSTED = 3;
570
+ */
571
+ EXHAUSTED = 3,
572
+ /**
573
+ * No published result can be served because the first batch reached a
574
+ * terminal failure. Projections are empty; clients should offer retry.
575
+ *
576
+ * @generated from enum value: RECOMMENDATION_AVAILABILITY_UNAVAILABLE = 4;
577
+ */
578
+ UNAVAILABLE = 4
579
+ }
580
+ /**
581
+ * Describes the enum caronashow.service.v1.RecommendationAvailability.
582
+ */
583
+ export declare const RecommendationAvailabilitySchema: GenEnum<RecommendationAvailability>;
399
584
  /**
400
585
  * @generated from service caronashow.service.v1.MatchingService
401
586
  */
402
587
  export declare const MatchingService: GenService<{
403
588
  /**
404
- * Lists ride offers whose routes intersect the requested map viewport.
405
- * The authenticated passenger and their saved search setup are inferred
406
- * from the session token. Returns UNAUTHENTICATED without a valid session and
407
- * INVALID_ARGUMENT for an invalid viewport or commute direction.
589
+ * Lists published ride offers whose safe route projection intersects the
590
+ * requested map viewport. The authenticated passenger, organization, and
591
+ * saved Search setup are inferred from the session token.
592
+ *
593
+ * The first Backend recommendation release supports only
594
+ * COMMUTE_DIRECTION_FROM_ORGANIZATION. Pooler's production routes start at
595
+ * the organization and end at participant home addresses. TO_ORGANIZATION
596
+ * remains in the enum for forward compatibility and returns UNIMPLEMENTED
597
+ * until the Backend dataset and projection support the toward-organization
598
+ * direction.
599
+ *
600
+ * Returns UNAUTHENTICATED without a valid session, FAILED_PRECONDITION when
601
+ * the caller has no eligible Search setup, and INVALID_ARGUMENT for an
602
+ * invalid viewport or direction.
408
603
  *
409
604
  * @generated from rpc caronashow.service.v1.MatchingService.ListRideSuggestions
410
605
  */