@sabstravtech/obtservices 0.2.2605260950 → 0.2.2606091300

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.
Files changed (133) hide show
  1. package/angular/components/basket-panel.d.ts +1 -1
  2. package/angular/fetchers.d.ts +2 -0
  3. package/angular/lib/vendor/classes/helpers.d.ts +2 -2
  4. package/angular/lib/vendor/fetchers/download-eticket.fetcher.d.ts +10 -0
  5. package/angular/lib/vendor/fetchers/get-flight-exchange-details.fetcher.d.ts +1 -1
  6. package/angular/lib/vendor/fetchers/get-flight-search-exchange.fetcher.d.ts +1 -1
  7. package/angular/lib/vendor/fetchers/get-jyrney-url.fetcher.d.ts +10 -0
  8. package/angular/lib/vendor/fetchers/get-latest-versions.fetcher.d.ts +1 -1
  9. package/angular/lib/vendor/fetchers/get-process-terms-price.fetcher.d.ts +10 -0
  10. package/angular/lib/vendor/fetchers/get-rail-search-exchange.fetcher.d.ts +1 -1
  11. package/angular/lib/vendor/interceptors/http-cancel-interceptor.d.ts +3 -3
  12. package/angular/lib/vendor/services/chatbot-eurostar-search.service.d.ts +38 -0
  13. package/angular/lib/vendor/services/chatbot-flight-search.service.d.ts +100 -0
  14. package/angular/lib/vendor/services/chatbot-hotel-search.service.d.ts +32 -0
  15. package/angular/lib/vendor/services/chatbot-rail-search.service.d.ts +53 -0
  16. package/angular/lib/vendor/services/chatbot-search-dispatcher.service.d.ts +36 -0
  17. package/angular/lib/vendor/services/chatbot.service.d.ts +34 -2
  18. package/angular/lib/vendor/services/enterprise-basket.service.d.ts +15 -12
  19. package/angular/lib/vendor/services/hotel-avallibility.service.d.ts +2 -2
  20. package/angular/lib/vendor/services/http-call.service.d.ts +3 -3
  21. package/angular/lib/vendor/services/http-cancel.service.d.ts +1 -1
  22. package/angular/lib/vendor/services/logon.service.d.ts +5 -5
  23. package/angular/lib/vendor/services/messages.service.d.ts +1 -1
  24. package/angular/lib/vendor/services/my-bookings.service.d.ts +2 -2
  25. package/angular/lib/vendor/services/prompt-update.service.d.ts +1 -1
  26. package/angular/lib/vendor/services/result-aware.service.d.ts +30 -1
  27. package/angular/lib/vendor/services/search-document-validation.service.d.ts +1 -1
  28. package/angular/lib/vendor/services/search-payment-validation.service.d.ts +1 -1
  29. package/angular/lib/vendor/services/search.service.d.ts +16 -15
  30. package/angular/lib/vendor/services/user.service.d.ts +7 -7
  31. package/angular/lib/vendor/services/webtoken.service.d.ts +1 -1
  32. package/angular/lib/vendor/testers/postcode-validate.tester.d.ts +1 -1
  33. package/angular/lib/vendor/types/graphql.angular.types.d.ts +132 -0
  34. package/angular/lib/vendor/updaters/accept-new-price.updater.d.ts +1 -1
  35. package/angular/lib/vendor/updaters/accept-process-terms.updater.d.ts +9 -0
  36. package/angular/lib/vendor/updaters/add-basket-item-markup.updater.d.ts +1 -1
  37. package/angular/lib/vendor/updaters/amend-booking.updater.d.ts +1 -1
  38. package/angular/lib/vendor/updaters/edit-user-address.updater.d.ts +1 -1
  39. package/angular/lib/vendor/updaters/save-user-address.updater.d.ts +1 -1
  40. package/angular/lib/vendor/updaters/set-empty-user-mi-default-value.updater.d.ts +1 -1
  41. package/angular/lib/vendor/updaters/set-mi-values.updater.d.ts +1 -1
  42. package/angular/lib/vendor/updaters/set-user-mi-default-value.updater.d.ts +1 -1
  43. package/angular/services.d.ts +5 -0
  44. package/base/lib/constants/ticket-codes.d.ts +1 -1
  45. package/base/lib/vendor/classes/base-enterprise.d.ts +1 -1
  46. package/base/lib/vendor/classes/base-network-call.d.ts +1 -1
  47. package/base/lib/vendor/classes/basket-info-mi-details.impl.d.ts +1 -1
  48. package/base/lib/vendor/classes/cabhire-enterprise-search.d.ts +3 -3
  49. package/base/lib/vendor/classes/carhire-enterprise-search.d.ts +3 -3
  50. package/base/lib/vendor/classes/draft-basket-info-mi-details.impl.d.ts +1 -1
  51. package/base/lib/vendor/classes/draft-management-info-and-valid.d.ts +2 -2
  52. package/base/lib/vendor/classes/eurostar-enterprise-search.d.ts +5 -5
  53. package/base/lib/vendor/classes/ferry-enterprise-search.d.ts +2 -4
  54. package/base/lib/vendor/classes/flight-enterprise-search.d.ts +5 -5
  55. package/base/lib/vendor/classes/hotel-enterprise-search.d.ts +4 -4
  56. package/base/lib/vendor/classes/irl-enterprise-search.d.ts +2 -2
  57. package/base/lib/vendor/classes/lounges-enterprise-search.d.ts +4 -4
  58. package/base/lib/vendor/classes/management-info-and-valid.d.ts +1 -1
  59. package/base/lib/vendor/classes/modal-types.enum.d.ts +1 -0
  60. package/base/lib/vendor/classes/parking-enterprise-search.d.ts +2 -2
  61. package/base/lib/vendor/classes/rail-enterprise-search.d.ts +5 -7
  62. package/base/lib/vendor/classes/season-ticket-enterprise-search.d.ts +2 -2
  63. package/base/lib/vendor/classes/supplementary-booking-info-impl.d.ts +1 -1
  64. package/base/lib/vendor/fetchers/apply-JIT-hotel-rules.fetcher.d.ts +3 -3
  65. package/base/lib/vendor/fetchers/eurostar-quote.fetcher.d.ts +2 -2
  66. package/base/lib/vendor/fetchers/flight-quote.fetcher.d.ts +3 -3
  67. package/base/lib/vendor/fetchers/hotel-avaliability-fetcher.d.ts +2 -2
  68. package/base/lib/vendor/fetchers/object-fetchable-enterprise.d.ts +1 -1
  69. package/base/lib/vendor/interceptors/http-cancel-interceptor.d.ts +2 -2
  70. package/base/lib/vendor/interfaces/Iambulance-enterprise-search.d.ts +1 -1
  71. package/base/lib/vendor/interfaces/Iapartment-enterprise-search.d.ts +1 -1
  72. package/base/lib/vendor/interfaces/Icarhire-enterprise-search.d.ts +2 -2
  73. package/base/lib/vendor/interfaces/Ienterprise-basket.service.d.ts +6 -5
  74. package/base/lib/vendor/interfaces/Ieurostar-enterprise-search.d.ts +2 -2
  75. package/base/lib/vendor/interfaces/Ifast-track-enterprise-search.d.ts +2 -2
  76. package/base/lib/vendor/interfaces/Iferry-enterprise-search.d.ts +1 -1
  77. package/base/lib/vendor/interfaces/Iflight-enterprise-search.d.ts +4 -4
  78. package/base/lib/vendor/interfaces/Ihotel-enterprise-search.d.ts +1 -1
  79. package/base/lib/vendor/interfaces/Iirl-enterprise-search.d.ts +2 -2
  80. package/base/lib/vendor/interfaces/Ilounges-enterprise-search.d.ts +1 -1
  81. package/base/lib/vendor/interfaces/Imeeting-room-enterprise-search.d.ts +1 -1
  82. package/base/lib/vendor/interfaces/Imybookings.service.d.ts +1 -2
  83. package/base/lib/vendor/interfaces/Irail-enterprise-search.d.ts +1 -1
  84. package/base/lib/vendor/interfaces/Irail-station-information.interface.d.ts +1 -1
  85. package/base/lib/vendor/interfaces/Isearch.service.d.ts +4 -5
  86. package/base/lib/vendor/interfaces/Iseason-tickets-enterprise-search.d.ts +1 -1
  87. package/base/lib/vendor/interfaces/Iuser.service.d.ts +4 -4
  88. package/base/lib/vendor/interfaces/booking-baskes-duplicate-check.interface.d.ts +1 -1
  89. package/base/lib/vendor/interfaces/cab-hire-search-arg.interface.d.ts +2 -2
  90. package/base/lib/vendor/interfaces/car-hire-classes.interface.d.ts +1 -1
  91. package/base/lib/vendor/interfaces/car-hire-search-arg.interface.d.ts +1 -1
  92. package/base/lib/vendor/interfaces/chatbot.types.d.ts +325 -3
  93. package/base/lib/vendor/interfaces/cheapest-price-object.d.ts +1 -1
  94. package/base/lib/vendor/interfaces/eurostar-search-arg.interface.d.ts +2 -2
  95. package/base/lib/vendor/interfaces/flight-multi-destination.interface.d.ts +3 -3
  96. package/base/lib/vendor/interfaces/hotel-recent-search-args.interface.d.ts +2 -2
  97. package/base/lib/vendor/interfaces/hotel-results-configuration.interface.d.ts +1 -1
  98. package/base/lib/vendor/interfaces/irl-search-arg.interface.d.ts +1 -1
  99. package/base/lib/vendor/operations/simple-fetchable-list-approval.d.ts +1 -1
  100. package/base/lib/vendor/operations/simple-fetchable-list-basket.d.ts +14 -1
  101. package/base/lib/vendor/operations/simple-fetchable-list-flight.d.ts +1 -1
  102. package/base/lib/vendor/operations/simple-fetchable-list-location.d.ts +1 -1
  103. package/base/lib/vendor/operations/simple-fetchable-list-misc.d.ts +14 -1
  104. package/base/lib/vendor/operations/simple-fetchable-list-quotes.d.ts +1 -1
  105. package/base/lib/vendor/operations/simple-fetchable-list-search.d.ts +1 -1
  106. package/base/lib/vendor/operations/simple-fetchable-list-user.d.ts +1 -1
  107. package/base/lib/vendor/operations/simple-fetchable-object.d.ts +14 -1
  108. package/base/lib/vendor/operations/simple-fetchers.d.ts +1 -0
  109. package/base/lib/vendor/operations/simple-updaters-basket-approval.d.ts +1 -1
  110. package/base/lib/vendor/operations/simple-updaters-basket-item.d.ts +14 -1
  111. package/base/lib/vendor/operations/simple-updaters-basket.d.ts +1 -1
  112. package/base/lib/vendor/operations/simple-updaters-booking.d.ts +1 -1
  113. package/base/lib/vendor/operations/simple-updaters-user-preference.d.ts +1 -1
  114. package/base/lib/vendor/operations/simple-updaters-user.d.ts +1 -1
  115. package/base/lib/vendor/services/chatbot.service.d.ts +43 -1
  116. package/base/lib/vendor/services/enterprise-basket.service.d.ts +17 -18
  117. package/base/lib/vendor/services/http-cancel.service.d.ts +1 -1
  118. package/base/lib/vendor/services/logon.service.d.ts +3 -3
  119. package/base/lib/vendor/services/my-bookings.service.d.ts +3 -6
  120. package/base/lib/vendor/services/requires-override-reason.service.d.ts +4 -4
  121. package/base/lib/vendor/services/requires-reason.service.d.ts +2 -2
  122. package/base/lib/vendor/services/search.service.d.ts +10 -9
  123. package/base/lib/vendor/services/user.service.d.ts +2 -6
  124. package/base/lib/vendor/testers/base.tester.d.ts +1 -1
  125. package/base/lib/vendor/testers/postcode-validate.tester.d.ts +2 -2
  126. package/base/lib/vendor/types/basket-types.d.ts +2 -2
  127. package/base/lib/vendor/types/graphql.types.d.ts +104 -0
  128. package/base/lib/vendor/types/types.d.ts +37 -36
  129. package/fesm2022/sabstravtech-obtservices-angular.mjs +2746 -155
  130. package/fesm2022/sabstravtech-obtservices-angular.mjs.map +1 -1
  131. package/fesm2022/sabstravtech-obtservices-base.mjs +6429 -6046
  132. package/fesm2022/sabstravtech-obtservices-base.mjs.map +1 -1
  133. package/package.json +1 -1
@@ -3,8 +3,8 @@ import moment, { Moment } from 'moment';
3
3
  import { Country, HotelQuoteResult, HotelQuoteResultArray, LocationTypes, MinMax, NgbDateStruct, LocationDetails, BreatfastTypes, HotelDetailsArray, SaveFavouriteSearchResult, DifferentInvokdedUserReasons, HotelDetails, HotelAvalibilityQuoteResult, HotelAvalibilityQuery, AmenitiesSearchHandler, StarRating } from '../types/types';
4
4
  import { BasketItem, HotelRoom, HotelTag, SearchHotelsQueryVariables, ServiceType, LocationDetail } from '../types/graphql.types';
5
5
  import { BaseEnterpriseSearch } from '../classes/base-enterprise';
6
- import { ICheapestPrice } from './cheapest-price';
7
6
  import { Traveller } from '../models/traveller.object';
7
+ import { ICheapestPrice } from './cheapest-price';
8
8
  export interface HotelTempParams {
9
9
  location_type_select: LocationTypes;
10
10
  checkin_date: moment.Moment;
@@ -1,10 +1,10 @@
1
1
  import moment from 'moment';
2
+ import { Observable } from 'rxjs';
2
3
  import { NgbDateStruct, IrlQuoteResultArray, IrlTicketOptionWithSelected, SaveFavouriteSearchResult, DifferentInvokdedUserReasons } from '../types/types';
3
4
  import { BasketItem, IrlClass, IrlJourneyOption, IrlJourneyOptions, IrlJourneyType, IrlTicketOption, SearchIrlQueryVariables, ServiceType, IrlSupplier, IrlTravelCard } from '../types/graphql.types';
4
5
  import type { BaseEnterpriseSearch } from '../classes/base-enterprise';
5
- import { ICheapestPrice } from './cheapest-price';
6
- import { Observable } from 'rxjs';
7
6
  import type { IrlFilters, SortTypeIrl } from '../types/irl-search-types';
7
+ import { ICheapestPrice } from './cheapest-price';
8
8
  export interface IrlTempParams {
9
9
  irlDiscountCards: string;
10
10
  supplier: IrlSupplier;
@@ -1,6 +1,6 @@
1
1
  import moment from 'moment';
2
- import { BaseEnterpriseSearch } from '../classes/base-enterprise';
3
2
  import { BehaviorSubject, Observable } from 'rxjs';
3
+ import { BaseEnterpriseSearch } from '../classes/base-enterprise';
4
4
  import { LoungeQuoteResultArray, NgbDateStruct, OBTAirportDetails, SaveFavouriteSearchResult } from '../types/types';
5
5
  import { BasketItem, LoungeQuote, SearchLoungesQueryVariables, ServiceType } from '../types/graphql.types';
6
6
  import { ICheapestPrice } from './cheapest-price';
@@ -1,7 +1,7 @@
1
+ import moment from 'moment';
1
2
  import { MeetingRoomEmailQuoteResult, NgbDateStruct, Country, LocationDetails } from '../types/types';
2
3
  import { BaseEnterpriseSearch } from '../classes/base-enterprise';
3
4
  import { EmailMeetingRoomBookingReqQueryVariables, MeetingRoomOfflineTraveller, MeetingRoomDuration, MeetingRoomLayout, MeetingRoomEquipment, MeetingRoomCatering } from '../types/graphql.types';
4
- import moment from 'moment';
5
5
  export interface MeetingRoomTempParams {
6
6
  onBehalfOfEmail: string;
7
7
  travellers: MeetingRoomOfflineTraveller | MeetingRoomOfflineTraveller[];
@@ -1,7 +1,6 @@
1
1
  import { BehaviorSubject, Observable } from 'rxjs';
2
2
  import { AmendBookingResult, CancelUserBookingResult, UserBasketResult } from '../types/types';
3
- import { Basket, CancellationInfoInput, DraftBasketItem, DuplicateBasketItems, QueryGetUserBasketsArgs, SelectedCancelPortion } from '../types/graphql.types';
4
- import { BasketItem, BasketItemStatus, BasketStatus, ServiceType } from '../types/graphql.types';
3
+ import { Basket, CancellationInfoInput, DraftBasketItem, DuplicateBasketItems, QueryGetUserBasketsArgs, SelectedCancelPortion, BasketItem, BasketItemStatus, BasketStatus, ServiceType } from '../types/graphql.types';
5
4
  import { EnterpriseSearchServiceInterface } from '../interfaces/Isearch.service';
6
5
  import { Traveller } from '../models/traveller.object';
7
6
  import { BasketDetails } from '../services/enterprise-basket.service';
@@ -4,10 +4,10 @@ import { CheapestRailClassPrices, CheapestRailPrices, DifferentInvokdedUserReaso
4
4
  import { BasketItem, RailClass, RailIdentifiers, RailJourneyOption, RailSearchJourneyType, RailSearchResult, RailStation, RailTicketExtra, RailTicketTermsList, ReferenceRailCardQualifier, SearchFlightsV2QueryVariables, SearchRailQueryVariables, ServiceType } from '../types/graphql.types';
5
5
  import { AllowedRailClass, RailFareTypes, RailSearchCriteria, RailSplitComparisonType, TrainlineTraveller } from '../types/rail-search-types';
6
6
  import type { BaseEnterpriseSearch } from '../classes/base-enterprise';
7
+ import { RailDirection } from '../classes/rail-direction.enum';
7
8
  import { CodeName } from './code-name';
8
9
  import { ICheapestPrice } from './cheapest-price';
9
10
  import { IRailAirportExpressStations } from './rail-airport-express-stations.interface';
10
- import { RailDirection } from '../classes/rail-direction.enum';
11
11
  import { ITravelCardDetail, RailBasketItem, TicketExtras } from './rail-basket-item.interface';
12
12
  import { IRailStationInformation } from './Irail-station-information.interface';
13
13
  import { IRailSelectedMultiFares } from './rail-selected-ticket.interface';
@@ -1,4 +1,4 @@
1
- import { SchemaFormat } from "../types/types";
1
+ import { SchemaFormat } from '../types/types';
2
2
  export interface IRailStationInformation {
3
3
  [key: string]: IStationInfo;
4
4
  }
@@ -1,10 +1,11 @@
1
1
  import moment from 'moment';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { Observable } from 'rxjs';
4
- import { SearchObject, SearchObjects } from './search-objects.interface';
2
+ import { BehaviorSubject, Observable } from 'rxjs';
5
3
  import { Address, BasketItem, ReferenceRailCardQualifier, SaveRecentSearchMutationVariables, ServiceType, InputFlightJourney, SaveFavouriteSearchMutationVariables, Basket, RailStation, CurrencyCode, CurrencyRates, HotelDetailsResult, Service, InputSpecificFareInfo, LocationType, AirAvailabiltyResult, PhoneType, AddressInput, LocationCodes, SaveRecentBoltSearchMutationVariables, MutationEditUserAddressArgs, HotelRatingIdentifiers, GetMultipleHotelRatingResponse, FlightItinerary, Division, Office } from '../types/graphql.types';
6
4
  import { Traveller } from '../models/traveller.object';
7
5
  import { AddressForm, AirportSearchResults, CountryCode, GetFlightBrandedFaresResultArray, GetFlightFareRulesResult, GetUserCompanyOfficesResultArray, GetUserFavouriteSearchesResultArray, SaveFavouriteSearchResult, SearchRailLiveDeparturesResult, TerminalsType, CarHireDepotResultArray, GutFormPreviousValue, LocationDetails, RuleActionSummaryInterface, GeoLocationResultArray, SearchDiscoverLocationResultArray } from '../types/types';
6
+ import { ErmTravellerType } from '../classes/erm-traveller-type.enum';
7
+ import type { TravellerSearchTypes } from '../services/search.service';
8
+ import { SearchObject, SearchObjects } from './search-objects.interface';
8
9
  import type { LoungesEnterpriseSearchInterface, LoungesTempParams } from './Ilounges-enterprise-search';
9
10
  import type { HotelEnterpriseSearchInterface, HotelTempParams } from './Ihotel-enterprise-search';
10
11
  import type { ParkingEnterpriseSearchInterface, ParkingTempParams } from './Iparking-enterprise-search';
@@ -16,12 +17,10 @@ import type { IRLEnterpriseSearchInterface, IrlTempParams } from './Iirl-enterpr
16
17
  import type { EurostarEnterpriseSearchInterface, EurostarTempParams } from './Ieurostar-enterprise-search';
17
18
  import type { FastTrackEnterpriseSearchInterface, FastTrackTempParams } from './Ifast-track-enterprise-search';
18
19
  import type { FerryEnterpriseSearchInterface, FerryTempParams } from './Iferry-enterprise-search';
19
- import { ErmTravellerType } from '../classes/erm-traveller-type.enum';
20
20
  import type { IRailStationInformation } from './Irail-station-information.interface';
21
21
  import type { ApartmentEnterpriseSearchInterface, ApartmentTempParams } from './Iapartment-enterprise-search';
22
22
  import type { SeasonTicketsEnterpriseSearchInterface, SeasonTicketsTempParams } from './Iseason-tickets-enterprise-search';
23
23
  import type { MeetingRoomEnterpriseSearchInterface, MeetingRoomTempParams } from './Imeeting-room-enterprise-search';
24
- import type { TravellerSearchTypes } from '../services/search.service';
25
24
  import type { SearchServiceMinimal } from './search-service-minimal.interface';
26
25
  import { AmbulanceEnterpriseSearchInterface, AmbulanceTempParams } from './Iambulance-enterprise-search';
27
26
  export type SearchParams = {
@@ -1,7 +1,7 @@
1
+ import moment from 'moment';
1
2
  import { NgbDateStruct, SeasonTicketEmailQuoteResult } from '../types/types';
2
3
  import { BaseEnterpriseSearch } from '../classes/base-enterprise';
3
4
  import { SeasonTicketCardType, SeasonTicketClassType, SeasonTicketDeliveryType, SeasonTicketLondonUnderground, SeasonTicketType } from '../types/graphql.types';
4
- import moment from 'moment';
5
5
  import { ValueDisplay } from './value-display';
6
6
  export interface SeasonTicketsTempParams {
7
7
  fromLocation: any;
@@ -1,9 +1,9 @@
1
1
  import { BehaviorSubject, Observable } from 'rxjs';
2
2
  import { Suppliers, UserFavorurite } from '../classes/user-favourite.enum';
3
- import { UserData } from './user.data';
4
3
  import { Traveller } from '../models/traveller.object';
5
4
  import { BookerType, Company, CompanyType, UserOrGuest, Message, Office, Service, ServiceType, UiConfig, User, ApexxCard, Basket, ApexxCreateCardResult, BasketItem, ManagementInfo, ProfileConfig, PreferredTransportHub, Address, UserDefaultManagementInfoValue, EmptyUserDefaultManagementValue, CompanyUsers } from '../types/graphql.types';
6
5
  import { ServiceProvider, Unpacked, UserUiConfigsResult } from '../types/types';
6
+ import { UserData } from './user.data';
7
7
  export interface UserConfig {
8
8
  [key: string]: UiConfig;
9
9
  }
@@ -34,7 +34,7 @@ export interface ISupportContact {
34
34
  [key: string]: ISupportEmailPhone;
35
35
  }
36
36
  export interface ISupportEmailPhone {
37
- enable: Boolean;
37
+ enable: boolean;
38
38
  email: string;
39
39
  phone: string;
40
40
  }
@@ -119,8 +119,8 @@ export interface UserServiceInterface {
119
119
  searchWithEmail(email: string): Observable<User>;
120
120
  getOfficeUsersById(id: string): Observable<Office>;
121
121
  getUserPreferredTransportHubs(): Observable<PreferredTransportHub[]>;
122
- setPreferredTransportHub(serviceType: ServiceType, hubCode: string): Observable<Boolean>;
123
- removePreferredTransportHub(serviceType: ServiceType, hubCode: string): Observable<Boolean>;
122
+ setPreferredTransportHub(serviceType: ServiceType, hubCode: string): Observable<boolean>;
123
+ removePreferredTransportHub(serviceType: ServiceType, hubCode: string): Observable<boolean>;
124
124
  getUserPrimaryAddress(userId: string): Observable<Address>;
125
125
  canSeeBookingsOfOthers(): boolean;
126
126
  getUserMiStack(userId: string, defaultValueConsumingOnly: boolean, serviceId: string): Observable<ManagementInfo[]>;
@@ -1,4 +1,4 @@
1
- import { BasketItem, QueryGetUserBasketsArgs, User } from "../types/graphql.types";
1
+ import { BasketItem, QueryGetUserBasketsArgs, User } from '../types/graphql.types';
2
2
  export interface IBookingDuplicateCheck {
3
3
  basketSearchQuery: QueryGetUserBasketsArgs[];
4
4
  currentBasketItem: BasketItem[];
@@ -1,5 +1,5 @@
1
- import { QuerySearchCabHireArgs } from "../types/graphql.types";
2
- import { AddressForm, RailAirport } from "../types/types";
1
+ import { QuerySearchCabHireArgs } from '../types/graphql.types';
2
+ import { AddressForm, RailAirport } from '../types/types';
3
3
  export interface ICabHireSearchArgs extends QuerySearchCabHireArgs {
4
4
  fromAddress?: AddressForm;
5
5
  toAddress?: AddressForm;
@@ -1,4 +1,4 @@
1
- import { CarHireClass } from "../types/graphql.types";
1
+ import { CarHireClass } from '../types/graphql.types';
2
2
  export interface ICarClasses {
3
3
  code: string;
4
4
  name: string;
@@ -1,4 +1,4 @@
1
- import { CarHireCityInput, InputCarHireDepot, QuerySearchCarHireArgs } from "../types/graphql.types";
1
+ import { CarHireCityInput, InputCarHireDepot, QuerySearchCarHireArgs } from '../types/graphql.types';
2
2
  export type CarHireSearchArgs = Omit<QuerySearchCarHireArgs, 'city' | 'depot'> & {
3
3
  city?: ICarHireCity;
4
4
  depot?: ICarHireDepot;
@@ -1,4 +1,10 @@
1
- export type ChatConversationState = 'GREETING' | 'COLLECTING_PARAMS' | 'PARAMS_COMPLETE' | 'SEARCHING' | 'HANDED_OFF' | 'SELECTING_RESULT' | 'BLOCKED';
1
+ export type ChatConversationState = 'GREETING' | 'COLLECTING_PARAMS' | 'PARAMS_COMPLETE' | 'SEARCHING' | 'RESULTS_READY' | 'HANDED_OFF' | 'SELECTING_RESULT' | 'BLOCKED';
2
+ /** A curated FAQ shown in the chat widget's browse-and-select view (no AI). */
3
+ export interface BotFaq {
4
+ id: number;
5
+ question: string;
6
+ answer: string;
7
+ }
2
8
  export interface CondensedResult {
3
9
  index: number;
4
10
  airline?: string;
@@ -40,9 +46,28 @@ export interface CondensedResult {
40
46
  policyStatus?: 'IN_POLICY' | 'ALLOW_WITH_REASON' | 'UNAVAILABLE';
41
47
  }[];
42
48
  singleOrReturn?: string;
49
+ name?: string;
50
+ address?: string;
51
+ rating?: number;
52
+ distance?: number;
53
+ distanceUnit?: string;
54
+ pricePerNight?: number;
55
+ }
56
+ /** One leg of a multi-city flight itinerary, as supplied to chatbot flight search. */
57
+ export interface ChatFlightSearchLeg {
58
+ departure: string;
59
+ arrival: string;
60
+ departureCode?: string;
61
+ arrivalCode?: string;
62
+ /** Travel date for this leg in YYYY-MM-DD format. */
63
+ date: string;
64
+ /** Optional preferred time in HH:mm. */
65
+ time?: string;
66
+ /** Optional Depart/Arrive criterion for this leg. */
67
+ timeCriteria?: 'Depart' | 'Arrive';
43
68
  }
44
69
  export interface ChatSearchParameters {
45
- travelType: 'flight' | 'rail' | 'hotel';
70
+ travelType: 'flight' | 'rail' | 'hotel' | 'eurostar' | 'taxi';
46
71
  departure: string;
47
72
  arrival: string;
48
73
  departureCode?: string;
@@ -52,15 +77,230 @@ export interface ChatSearchParameters {
52
77
  returnDate?: string;
53
78
  returnTime?: string;
54
79
  passengers: number;
80
+ /**
81
+ * Flight multi-city legs. When set with 2+ entries the search runs as
82
+ * multi-city (the top-level departure/arrival/date describe the first leg
83
+ * for back-compat). Each entry is one segment of the itinerary.
84
+ */
85
+ legs?: ChatFlightSearchLeg[];
86
+ /** Optional explicit journey type — usually inferred from legs/returnDate. */
87
+ journeyType?: 'single' | 'return' | 'multiCity';
55
88
  rooms?: number;
56
89
  hotelName?: string;
57
90
  hotelChain?: string;
58
91
  distance?: number;
59
92
  preferredOnly?: boolean;
60
- locationType?: 'address' | 'office' | 'shortlist';
93
+ locationType?: 'address' | 'office' | 'shortlist' | 'airport' | 'trainstation';
61
94
  crownRatesOnly?: boolean;
62
95
  propertyNumber?: string;
63
96
  country?: string;
97
+ cabinClass?: string;
98
+ maxConnections?: number;
99
+ outboundTimeCriteria?: 'Depart' | 'Arrive';
100
+ returnTimeCriteria?: 'Depart' | 'Arrive';
101
+ railClass?: 'Standard' | 'First' | 'All';
102
+ viaStation?: string;
103
+ viaCode?: string;
104
+ isAirportExpress?: boolean;
105
+ airportExpressRoute?: string;
106
+ children?: number;
107
+ /** Railcard codes to apply to this search (e.g. "YNG", "SRN", "FAM"). */
108
+ railcards?: string[];
109
+ airline?: string;
110
+ airlineCode?: string;
111
+ /** Sort field — values vary by travel type (flight: cheapest/fastest/shortest; hotel: cheapest/distance/preferred/name). */
112
+ sortType?: 'cheapest' | 'fastest' | 'shortest' | 'distance' | 'preferred' | 'name';
113
+ adults?: number;
114
+ infants?: number;
115
+ includeNearbyAirports?: boolean;
116
+ timeFlexibility?: number;
117
+ refundableOnly?: boolean;
118
+ via?: string;
119
+ vehicleType?: string;
120
+ pickupTerminal?: string;
121
+ pickupFlightNumber?: string;
122
+ dropoffTerminal?: string;
123
+ dropoffFlightNumber?: string;
124
+ }
125
+ export interface ChatRailFareTicket {
126
+ type: string;
127
+ classOfService?: string;
128
+ price: number;
129
+ currency: string;
130
+ /** Identifier needed to open the View Conditions dialog */
131
+ fareHash?: string;
132
+ /** Section the fare came from (e.g. singleJourneyFares) — needed to find the raw fare */
133
+ section?: string;
134
+ /** True if this ticket belongs to the inbound/return leg */
135
+ isReturnLeg?: boolean;
136
+ /** Index of the journey within rawResults / railReturnJourneys */
137
+ journeyIndex?: number;
138
+ }
139
+ export interface ChatRailFareSummary {
140
+ /** Cheapest single/one-way fare for this leg */
141
+ singlePrice?: number;
142
+ /** Cheapest return fare available (outbound only; absent for inbound cards) */
143
+ returnPrice?: number;
144
+ currency: string;
145
+ /** Full ticket list shown when a fare section is clicked, sorted cheapest first */
146
+ singleTickets?: ChatRailFareTicket[];
147
+ returnTickets?: ChatRailFareTicket[];
148
+ }
149
+ export interface ChatRailResultCard {
150
+ index: number;
151
+ departDate: string;
152
+ departTime: string;
153
+ arriveTime: string;
154
+ from: string;
155
+ to: string;
156
+ route: string;
157
+ duration: string;
158
+ changes: number;
159
+ fromPrice: number;
160
+ currency: string;
161
+ operator: string;
162
+ policyStatus?: 'IN_POLICY' | 'ALLOW_WITH_REASON' | 'UNAVAILABLE';
163
+ /** Fare breakdown shown when the card is expanded */
164
+ fares?: ChatRailFareSummary;
165
+ }
166
+ export interface ChatRailResults {
167
+ outbound: ChatRailResultCard[];
168
+ inbound?: ChatRailResultCard[];
169
+ isReturn: boolean;
170
+ parameters: ChatSearchParameters;
171
+ }
172
+ export interface ChatFlightLeg {
173
+ /** Departure airport code (e.g. "LHR") */
174
+ fromCode: string;
175
+ /** Departure airport display name */
176
+ fromName?: string;
177
+ /** Arrival airport code (e.g. "AMS") */
178
+ toCode: string;
179
+ /** Arrival airport display name */
180
+ toName?: string;
181
+ /** Date label e.g. "Wed 10 Jun 2026" */
182
+ departDate: string;
183
+ /** Time label e.g. "09:15" */
184
+ departTime: string;
185
+ /** Time label e.g. "11:42" */
186
+ arriveTime: string;
187
+ /** Duration label e.g. "2h 27m" */
188
+ duration: string;
189
+ /** 0 = direct, 1, 2+ */
190
+ stops: number;
191
+ /** Flight numbers joined e.g. "BA123/BA456" */
192
+ flightNumbers: string;
193
+ }
194
+ export interface ChatFlightFareTicket {
195
+ /** Display label, e.g. "Economy Saver", "Business Flex" */
196
+ type: string;
197
+ /** Cabin class group (Economy / PremiumEconomy / Business / First) */
198
+ cabin?: string;
199
+ /** Fare-brand name when present */
200
+ brand?: string;
201
+ price: number;
202
+ currency: string;
203
+ /** Index back into the underlying journeys array for select / navigate use */
204
+ journeyIndex?: number;
205
+ }
206
+ /** Flight fare breakdown for the expandable panel on a chat flight card. */
207
+ export interface ChatFlightFareBreakdown {
208
+ /** All bookable fares for the same outbound (+ inbound) flights, sorted cheapest first. */
209
+ tickets: ChatFlightFareTicket[];
210
+ currency: string;
211
+ }
212
+ export interface ChatFlightResultCard {
213
+ index: number;
214
+ /** Airline display name (cheapest fare's marketing carrier) */
215
+ airline: string;
216
+ /** Airline IATA code, used to derive a logo url */
217
+ airlineCode?: string;
218
+ /** Outbound leg (always present for single/return; first leg for multi-city) */
219
+ outbound: ChatFlightLeg;
220
+ /** Inbound leg (present for return itineraries) */
221
+ inbound?: ChatFlightLeg;
222
+ /**
223
+ * Full list of legs for multi-city itineraries. When set the card should
224
+ * render these stacked instead of outbound/inbound. `outbound` still mirrors
225
+ * `legs[0]` for back-compat with consumers that only read outbound.
226
+ */
227
+ legs?: ChatFlightLeg[];
228
+ /** Cheapest fare price for the whole itinerary */
229
+ fromPrice: number;
230
+ currency: string;
231
+ /** Cabin class label e.g. "Economy" */
232
+ cabin: string;
233
+ policyStatus?: 'IN_POLICY' | 'ALLOW_WITH_REASON' | 'UNAVAILABLE';
234
+ /** Expandable fare-options panel data (cabin/brand variants for the same flights). */
235
+ fares?: ChatFlightFareBreakdown;
236
+ }
237
+ export interface ChatFlightResults {
238
+ outbound: ChatFlightResultCard[];
239
+ /**
240
+ * Separate inbound cards when the backend returned dual-singles (i.e. the
241
+ * outbound and inbound legs are priced + selectable independently). For
242
+ * combined-return itineraries the inbound info lives inside each outbound
243
+ * card's `.inbound` and this array is left empty.
244
+ */
245
+ inbound?: ChatFlightResultCard[];
246
+ isReturn: boolean;
247
+ /** True when the search was a multi-city (3+ leg) itinerary. */
248
+ isMultiCity?: boolean;
249
+ parameters: ChatSearchParameters;
250
+ /** How the results were sorted, used in the summary text */
251
+ sort?: 'cheapest' | 'fastest' | 'shortest';
252
+ }
253
+ export interface ChatHotelRoom {
254
+ roomId: string;
255
+ description: string;
256
+ total: number;
257
+ prpn: number;
258
+ currencyCode: string;
259
+ unavailable: boolean;
260
+ policyStatus?: 'IN_POLICY' | 'ALLOW_WITH_REASON' | 'UNAVAILABLE';
261
+ }
262
+ export interface ChatHotelResultCard {
263
+ index: number;
264
+ name: string;
265
+ address: string;
266
+ rating: number;
267
+ distance: number;
268
+ distanceUnit: string;
269
+ price: number;
270
+ pricePerNight: number;
271
+ dateRange: string;
272
+ policyStatus?: 'IN_POLICY' | 'ALLOW_WITH_REASON' | 'UNAVAILABLE';
273
+ policyMessages?: string[];
274
+ co2?: number;
275
+ currencyCode?: string;
276
+ rooms?: ChatHotelRoom[];
277
+ }
278
+ export interface ChatHotelResults {
279
+ cards: ChatHotelResultCard[];
280
+ searchHeader: string;
281
+ parameters: ChatSearchParameters;
282
+ }
283
+ export interface ChatEurostarFare {
284
+ class: string;
285
+ price: number;
286
+ currency: string;
287
+ policyStatus: CondensedResult['policyStatus'];
288
+ policyMessages: string[];
289
+ unavailable: boolean;
290
+ }
291
+ export interface ChatEurostarResultCard {
292
+ index: number;
293
+ timeDeparture: string;
294
+ timeArrival: string;
295
+ duration: string;
296
+ fares: ChatEurostarFare[];
297
+ co2PerPassenger: number;
298
+ }
299
+ export interface ChatEurostarResults {
300
+ outbound: ChatEurostarResultCard[];
301
+ inbound?: ChatEurostarResultCard[];
302
+ isReturn: boolean;
303
+ parameters: ChatSearchParameters;
64
304
  }
65
305
  export interface ChatSuggestion {
66
306
  type: 'search_action' | 'select_action';
@@ -106,6 +346,12 @@ export interface ChatMessage {
106
346
  alternativeIndex?: number;
107
347
  action?: 'search' | 'select' | 'navigate';
108
348
  riskFlag?: IRiskFlag | null;
349
+ railResults?: ChatRailResults;
350
+ flightResults?: ChatFlightResults;
351
+ hotelResults?: ChatHotelResults;
352
+ eurostarResults?: ChatEurostarResults;
353
+ searchResults?: CondensedResult[];
354
+ searchHeader?: string;
109
355
  }
110
356
  export interface UserCapabilities {
111
357
  isCrown: boolean;
@@ -114,3 +360,79 @@ export interface UserCapabilities {
114
360
  hideHotelSearchOptions: boolean;
115
361
  };
116
362
  }
363
+ /**
364
+ * Travel-type-specific chatbot search handler. Implement one of these per
365
+ * travel type (rail, flight, hotel, eurostar, …) and register the service in
366
+ * `ChatbotSearchDispatcherService`'s constructor.
367
+ *
368
+ * The handler is responsible for:
369
+ * 1. Populating the corresponding `EnterpriseSearchService.searches[ServiceType.*]`
370
+ * state from the chatbot parameters (the same fields the search form would
371
+ * populate via two-way binding).
372
+ * 2. If `autoSearch` is true, kicking off the search and capturing results so
373
+ * the chatbot can render its in-chat cards.
374
+ *
375
+ * Handlers run independently of any component being mounted so the chatbot
376
+ * works from any page in the consuming app.
377
+ */
378
+ export interface ChatbotTravelHandler {
379
+ /** Travel type this handler accepts (matches `ChatSearchParameters.travelType`). */
380
+ readonly travelType: ChatSearchParameters['travelType'];
381
+ /** Populate search state and (if requested) run the search. */
382
+ handle(parameters: ChatSearchParameters, autoSearch: boolean): Promise<void>;
383
+ }
384
+ /**
385
+ * Source of the feedback signal — matches the values accepted by the
386
+ * request-handler chat:feedback gateway.
387
+ */
388
+ export type ChatFeedbackSource = 'OBT' | 'App' | 'Portal' | 'Mobile' | 'Other';
389
+ /**
390
+ * Reason chips offered after a positive (thumbs-up) rating. Shared between
391
+ * the web (lu-frontend) and mobile (new-ent-mobile-app) chat widgets so the
392
+ * recorded `chat_feedback.reason` strings stay consistent across surfaces.
393
+ */
394
+ export declare const POSITIVE_FEEDBACK_REASONS: readonly string[];
395
+ /** Reason chips offered after a negative (thumbs-down) rating. */
396
+ export declare const NEGATIVE_FEEDBACK_REASONS: readonly string[];
397
+ /** Convenience helper: returns the reason set for a given rating. */
398
+ export declare function feedbackReasonsForRating(rating: 'up' | 'down' | undefined): readonly string[];
399
+ /** Incremental LLM token chunk emitted while an assistant message is being generated. */
400
+ export interface ChatTokenEvent {
401
+ sessionId: string;
402
+ token: string;
403
+ agent?: string;
404
+ }
405
+ /** Tool execution lifecycle event emitted during a turn. */
406
+ export interface ChatToolEvent {
407
+ sessionId: string;
408
+ toolEvent: string;
409
+ name: string;
410
+ }
411
+ /** Single transcript entry attached to a `chat:feedback` emit. */
412
+ export interface ChatFeedbackTranscriptEntry {
413
+ id?: string;
414
+ role: 'user' | 'assistant';
415
+ text: string;
416
+ timestamp?: string;
417
+ }
418
+ /**
419
+ * Optional context attached to `submitFeedback()` — comment, reason chip and
420
+ * the surrounding transcript snapshot so the analytics team has enough to
421
+ * action a thumbs-down without replaying the whole session.
422
+ */
423
+ export interface ChatFeedbackExtras {
424
+ comment?: string;
425
+ reason?: string;
426
+ source?: ChatFeedbackSource;
427
+ userQuestion?: string;
428
+ assistantResponse?: string;
429
+ transcript?: ChatFeedbackTranscriptEntry[];
430
+ }
431
+ /** Server ack for a previously emitted `chat:feedback`. */
432
+ export interface ChatFeedbackAck {
433
+ sessionId: string;
434
+ messageId?: string;
435
+ rating?: 'up' | 'down';
436
+ success: boolean;
437
+ error?: string;
438
+ }
@@ -1,4 +1,4 @@
1
- import { FlightItineraryWithExtensions } from "../types/types";
1
+ import { FlightItineraryWithExtensions } from '../types/types';
2
2
  export interface ICheapestPriceObject {
3
3
  dualOutbound: ICheapestPriceDetails;
4
4
  dualInbound: ICheapestPriceDetails;
@@ -1,5 +1,5 @@
1
- import { SearchFlightsV2QueryVariables } from "../types/graphql.types";
2
- import { OBTAirportDetails } from "../types/types";
1
+ import { SearchFlightsV2QueryVariables } from '../types/graphql.types';
2
+ import { OBTAirportDetails } from '../types/types';
3
3
  export interface IEurostarSearchArgs extends SearchFlightsV2QueryVariables {
4
4
  departLocation?: string | OBTAirportDetails;
5
5
  arriveLocation?: string | OBTAirportDetails;
@@ -1,6 +1,6 @@
1
- import moment from "moment";
2
- import { TimeWindow } from "../types/flight-search-types";
3
- import { OBTAirportDetails } from "../types/types";
1
+ import moment from 'moment';
2
+ import { TimeWindow } from '../types/flight-search-types';
3
+ import { OBTAirportDetails } from '../types/types';
4
4
  export interface IMultiDestination {
5
5
  orig: OBTAirportDetails;
6
6
  dest: OBTAirportDetails;
@@ -1,5 +1,5 @@
1
- import { DistanceTypes } from "../types/graphql.types";
2
- import { LocationDetails, OBTAirportDetails } from "../types/types";
1
+ import { DistanceTypes } from '../types/graphql.types';
2
+ import { LocationDetails, OBTAirportDetails } from '../types/types';
3
3
  export interface HotelRecentSearchArgs {
4
4
  startDate: string;
5
5
  endDate: string;
@@ -1,4 +1,4 @@
1
- import { HotelView } from "./Ihotel-enterprise-search";
1
+ import { HotelView } from './Ihotel-enterprise-search';
2
2
  export interface IHotelResultsConfiguration {
3
3
  imageSrc: string;
4
4
  hotelSearchView: IHotelSearchView;
@@ -1,4 +1,4 @@
1
- import { SearchIrlQueryVariables } from "../types/graphql.types";
1
+ import { SearchIrlQueryVariables } from '../types/graphql.types';
2
2
  export interface IIrlSearchArgs extends SearchIrlQueryVariables {
3
3
  travellingFrom?: string;
4
4
  travellingTo?: string;
@@ -3,10 +3,10 @@
3
3
  * These fetchers extend FetchableList and only override getDataFromResult
4
4
  */
5
5
  import { ApolloQueryResult } from '@apollo/client/core';
6
+ import { Observable } from 'rxjs';
6
7
  import { BaseHelperRoutines } from '../classes/helpers';
7
8
  import { FetchableList } from '../fetchers/list-fetchable-enterprise';
8
9
  import { BaseModalOpenerService } from '../services/modal-opener.service';
9
- import { Observable } from 'rxjs';
10
10
  import * as Types from '../types/graphql.types';
11
11
  import * as CustomTypes from '../types/types';
12
12
  type GetEmptyUserMI_R = {
@@ -3,10 +3,10 @@
3
3
  * These fetchers extend FetchableList and only override getDataFromResult
4
4
  */
5
5
  import { ApolloQueryResult } from '@apollo/client/core';
6
+ import { Observable } from 'rxjs';
6
7
  import { BaseHelperRoutines } from '../classes/helpers';
7
8
  import { FetchableList } from '../fetchers/list-fetchable-enterprise';
8
9
  import { BaseModalOpenerService } from '../services/modal-opener.service';
9
- import { Observable } from 'rxjs';
10
10
  import * as Types from '../types/graphql.types';
11
11
  import * as CustomTypes from '../types/types';
12
12
  type GetBasketApprovalTimestamps_R = {
@@ -217,4 +217,17 @@ export declare class BaseEmailSeasonTicketBookingFetcher<Q extends EmailSeasonTi
217
217
  constructor(gql: Q, helpers: BaseHelperRoutines, modalService: BaseModalOpenerService);
218
218
  protected getDataFromResult(results: ApolloQueryResult<EmailSeasonTicketBooking_R>): EmailSeasonTicketBooking_P;
219
219
  }
220
+ type GetProcessTermsPrice_R = {
221
+ getProcessTermsPrice: Types.ProcessTermsPriceResult;
222
+ };
223
+ type GetProcessTermsPrice_P = Types.ProcessTermsPriceResult;
224
+ type GetProcessTermsPrice_A = Types.GetProcessTermsPriceQueryVariables;
225
+ type GetProcessTermsPrice_M = Types.GetProcessTermsPriceQuery;
226
+ export type GetProcessTermsPriceFetcherType = {
227
+ fetch: (a: GetProcessTermsPrice_A) => Observable<ApolloQueryResult<GetProcessTermsPrice_M>>;
228
+ };
229
+ export declare class BaseGetProcessTermsPriceFetcher<Q extends GetProcessTermsPriceFetcherType> extends FetchableList<Q, GetProcessTermsPrice_A, GetProcessTermsPrice_R, GetProcessTermsPrice_P, GetProcessTermsPrice_M> {
230
+ constructor(gql: Q, helpers: BaseHelperRoutines, modalService: BaseModalOpenerService);
231
+ protected getDataFromResult(results: ApolloQueryResult<GetProcessTermsPrice_R>): GetProcessTermsPrice_P;
232
+ }
220
233
  export {};
@@ -3,10 +3,10 @@
3
3
  * These fetchers extend FetchableList and only override getDataFromResult
4
4
  */
5
5
  import { ApolloQueryResult } from '@apollo/client/core';
6
+ import { Observable } from 'rxjs';
6
7
  import { BaseHelperRoutines } from '../classes/helpers';
7
8
  import { FetchableList } from '../fetchers/list-fetchable-enterprise';
8
9
  import { BaseModalOpenerService } from '../services/modal-opener.service';
9
- import { Observable } from 'rxjs';
10
10
  import * as Types from '../types/graphql.types';
11
11
  import * as CustomTypes from '../types/types';
12
12
  type GetFlightBrandedFares_R = {