@caronashow/api 0.13.0 → 0.14.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
+ * outbound release, the path runs from the coarse driver area toward the
176
+ * organization area. It must not expose the passenger's exact origin or a
177
+ * 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,29 @@ 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 time when a trusted Backend calculation exists
359
+ * for a custom schedule. Clients must prefer organization_arrival_window and
360
+ * hide the schedule when both are absent.
251
361
  *
252
362
  * @generated from field: caronashow.types.v1.TimeOfDay organization_time = 7;
253
363
  */
@@ -259,6 +369,41 @@ export type RankedRideSuggestion = Message<"caronashow.service.v1.RankedRideSugg
259
369
  * @generated from field: bool restricted_to_vulnerable_group = 8;
260
370
  */
261
371
  restrictedToVulnerableGroup: boolean;
372
+ /**
373
+ * Arrival window associated with the driver's named organization shift. It
374
+ * is interpreted using organization_time_zone and is the preferred schedule
375
+ * display for the first outbound release. It is absent for a custom schedule
376
+ * unless the Backend can derive a meaningful window; clients may use the
377
+ * exact-time field as a fallback.
378
+ *
379
+ * @generated from field: caronashow.service.v1.TimeWindow organization_arrival_window = 10;
380
+ */
381
+ organizationArrivalWindow?: TimeWindow | undefined;
382
+ /**
383
+ * Optional finite, nonnegative route distance from the published candidate,
384
+ * in kilometers. The Backend maps the Pooler result and does not ask the
385
+ * browser to calculate it.
386
+ *
387
+ * @generated from field: optional double route_distance_km = 11;
388
+ */
389
+ routeDistanceKm?: number | undefined;
390
+ /**
391
+ * Optional finite, nonnegative route duration from the published candidate,
392
+ * in seconds. The Backend maps the Pooler result and does not ask the browser
393
+ * to calculate it.
394
+ *
395
+ * @generated from field: optional double route_duration_seconds = 12;
396
+ */
397
+ routeDurationSeconds?: number | undefined;
398
+ /**
399
+ * Optional finite, nonnegative additional duration incurred by the driver
400
+ * for this passenger, relative to the driver's direct baseline route to the
401
+ * organization. The Backend derives it from the same published snapshot; the
402
+ * browser must not calculate it.
403
+ *
404
+ * @generated from field: optional double driver_detour_duration_seconds = 13;
405
+ */
406
+ driverDetourDurationSeconds?: number | undefined;
262
407
  };
263
408
  /**
264
409
  * Describes the message caronashow.service.v1.RankedRideSuggestion.
@@ -272,7 +417,8 @@ export declare const RankedRideSuggestionSchema: GenMessage<RankedRideSuggestion
272
417
  */
273
418
  export type DriverSummary = Message<"caronashow.service.v1.DriverSummary"> & {
274
419
  /**
275
- * Stable driver identifier used to open the public driver profile.
420
+ * Non-enumerable opaque driver identifier used by a future public-profile
421
+ * route; it must not be a database identity or an unauthenticated capability.
276
422
  *
277
423
  * @generated from field: string driver_id = 1;
278
424
  */
@@ -284,7 +430,8 @@ export type DriverSummary = Message<"caronashow.service.v1.DriverSummary"> & {
284
430
  */
285
431
  firstName: string;
286
432
  /**
287
- * URL of the driver's profile avatar.
433
+ * Absolute URL of a resolved avatar asset, when the asset contract permits
434
+ * it. Empty means the UI must use an initials fallback.
288
435
  *
289
436
  * @generated from field: string avatar_url = 3;
290
437
  */
@@ -296,53 +443,33 @@ export type DriverSummary = Message<"caronashow.service.v1.DriverSummary"> & {
296
443
  */
297
444
  rank: UserRank;
298
445
  /**
299
- * Aggregate passenger rating from 0.0 to 5.0; zero when not yet rated.
446
+ * Aggregate passenger rating from 0.0 to 5.0; zero means no aggregate is
447
+ * available yet.
300
448
  *
301
449
  * @generated from field: double rating = 5;
302
450
  */
303
451
  rating: number;
304
452
  /**
305
- * Nonnegative number of ratings included in rating; zero when not yet rated.
453
+ * Nonnegative number of ratings included in the aggregate rating, when
454
+ * available. Absence means the Backend has no value; clients must not display
455
+ * a fabricated zero.
306
456
  *
307
- * @generated from field: int32 rating_count = 6;
457
+ * @generated from field: optional int32 rating_count = 6;
308
458
  */
309
- ratingCount: number;
459
+ ratingCount?: number | undefined;
310
460
  /**
311
- * Nonnegative number of completed rides used as an additional trust signal.
461
+ * Nonnegative number of completed rides, when available. Absence means the
462
+ * Backend has no value; clients must not display a fabricated zero.
312
463
  *
313
- * @generated from field: int32 completed_rides = 7;
464
+ * @generated from field: optional int32 completed_rides = 7;
314
465
  */
315
- completedRides: number;
466
+ completedRides?: number | undefined;
316
467
  };
317
468
  /**
318
469
  * Describes the message caronashow.service.v1.DriverSummary.
319
470
  * Use `create(DriverSummarySchema)` to create a new message.
320
471
  */
321
472
  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
473
  /**
347
474
  * Offer-specific seat inventory for one directional ride suggestion.
348
475
  *
@@ -350,17 +477,20 @@ export declare const VehicleSummarySchema: GenMessage<VehicleSummary>;
350
477
  */
351
478
  export type SeatAvailability = Message<"caronashow.service.v1.SeatAvailability"> & {
352
479
  /**
353
- * Positive number of passenger seats offered for this commute leg.
480
+ * Positive number of passenger seats offered by the selected vehicle.
354
481
  *
355
482
  * @generated from field: int32 offered_seats = 1;
356
483
  */
357
484
  offeredSeats: number;
358
485
  /**
359
- * Currently available seats, from zero through offered_seats.
486
+ * Current available seats when the request/capacity subsystem supplies it.
487
+ * Absence means seat availability is not part of the read contract; clients
488
+ * must show offered capacity without treating zero as remaining capacity. When
489
+ * present, the Backend must return 0 <= available_seats <= offered_seats.
360
490
  *
361
- * @generated from field: int32 available_seats = 2;
491
+ * @generated from field: optional int32 available_seats = 2;
362
492
  */
363
- availableSeats: number;
493
+ availableSeats?: number | undefined;
364
494
  };
365
495
  /**
366
496
  * Describes the message caronashow.service.v1.SeatAvailability.
@@ -380,13 +510,15 @@ export declare enum CommuteDirection {
380
510
  */
381
511
  UNSPECIFIED = 0,
382
512
  /**
383
- * Driver and passenger travel toward the organization.
513
+ * Driver and passenger travel toward the organization. Supported by the
514
+ * first Backend recommendation release.
384
515
  *
385
516
  * @generated from enum value: COMMUTE_DIRECTION_TO_ORGANIZATION = 1;
386
517
  */
387
518
  TO_ORGANIZATION = 1,
388
519
  /**
389
- * Driver and passenger leave the organization for their return trip.
520
+ * Driver and passenger leave the organization for their return trip. Kept
521
+ * for the shared Home model; not supported by the first Backend release.
390
522
  *
391
523
  * @generated from enum value: COMMUTE_DIRECTION_FROM_ORGANIZATION = 2;
392
524
  */
@@ -396,15 +528,69 @@ export declare enum CommuteDirection {
396
528
  * Describes the enum caronashow.service.v1.CommuteDirection.
397
529
  */
398
530
  export declare const CommuteDirectionSchema: GenEnum<CommuteDirection>;
531
+ /**
532
+ * Availability of the authenticated passenger's published recommendation set.
533
+ * This describes the set before viewport filtering; projection array lengths
534
+ * describe the filtered projection returned in this response.
535
+ *
536
+ * @generated from enum caronashow.service.v1.RecommendationAvailability
537
+ */
538
+ export declare enum RecommendationAvailability {
539
+ /**
540
+ * Default value; a successful response must never use it.
541
+ *
542
+ * @generated from enum value: RECOMMENDATION_AVAILABILITY_UNSPECIFIED = 0;
543
+ */
544
+ UNSPECIFIED = 0,
545
+ /**
546
+ * No published result exists yet because the Backend batch is queued,
547
+ * running, restoring, or otherwise has not produced a readable snapshot.
548
+ *
549
+ * @generated from enum value: RECOMMENDATION_AVAILABILITY_COMPUTING = 1;
550
+ */
551
+ COMPUTING = 1,
552
+ /**
553
+ * A published result exists and contains at least one safe suggestion. It
554
+ * may contain fewer than the configured maximum after successful exhaustion.
555
+ *
556
+ * @generated from enum value: RECOMMENDATION_AVAILABILITY_READY = 2;
557
+ */
558
+ READY = 2,
559
+ /**
560
+ * A published result exists and contains zero candidates after exhaustion.
561
+ *
562
+ * @generated from enum value: RECOMMENDATION_AVAILABILITY_EXHAUSTED = 3;
563
+ */
564
+ EXHAUSTED = 3,
565
+ /**
566
+ * No published result can be served because the first batch reached a
567
+ * terminal failure. Projections are empty; clients should offer retry.
568
+ *
569
+ * @generated from enum value: RECOMMENDATION_AVAILABILITY_UNAVAILABLE = 4;
570
+ */
571
+ UNAVAILABLE = 4
572
+ }
573
+ /**
574
+ * Describes the enum caronashow.service.v1.RecommendationAvailability.
575
+ */
576
+ export declare const RecommendationAvailabilitySchema: GenEnum<RecommendationAvailability>;
399
577
  /**
400
578
  * @generated from service caronashow.service.v1.MatchingService
401
579
  */
402
580
  export declare const MatchingService: GenService<{
403
581
  /**
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.
582
+ * Lists published ride offers whose safe route projection intersects the
583
+ * requested map viewport. The authenticated passenger, organization, and
584
+ * saved Search setup are inferred from the session token.
585
+ *
586
+ * The first Backend recommendation release supports only
587
+ * COMMUTE_DIRECTION_TO_ORGANIZATION. FROM_ORGANIZATION remains in the enum
588
+ * for forward compatibility and returns UNIMPLEMENTED until the Backend
589
+ * dataset and projection support the return direction.
590
+ *
591
+ * Returns UNAUTHENTICATED without a valid session, FAILED_PRECONDITION when
592
+ * the caller has no eligible Search setup, and INVALID_ARGUMENT for an
593
+ * invalid viewport or direction.
408
594
  *
409
595
  * @generated from rpc caronashow.service.v1.MatchingService.ListRideSuggestions
410
596
  */