gotrip-fx-transaction-form 1.0.201-dev → 1.0.201

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 (164) hide show
  1. package/assets/index.css +1 -1
  2. package/index.js +48010 -39279
  3. package/package.json +1 -1
  4. package/types/components/AddTransaction/Agent.d.ts +3 -2
  5. package/types/components/AddTransaction/FlightInfomation.d.ts +2 -1
  6. package/types/components/AddTransaction/SelectingBankMessageAlerts.d.ts +5 -0
  7. package/types/components/Admin/AgencyUserSelector/AgencyUserSelector.d.ts +7 -0
  8. package/types/components/Admin/AgencyUserSelector/AgencyUserSelectorModal.d.ts +10 -0
  9. package/types/components/ApprovalStatusBadge.d.ts +7 -0
  10. package/types/components/Apps/EmbededIndividualApp.d.ts +2 -1
  11. package/types/components/BankTransferInfo/BankTransferInfoDisplay.d.ts +7 -0
  12. package/types/components/Common/DateDisplay.d.ts +7 -0
  13. package/types/components/Common/MultiTagCombobox.d.ts +14 -0
  14. package/types/components/Common/PrimaryRadioGroup.d.ts +16 -0
  15. package/types/components/Common/TimeRangeSelect.d.ts +17 -0
  16. package/types/components/Insurance/CreateInsuranceTransactionForm.d.ts +38 -2
  17. package/types/components/Insurance/DateRangePicker.d.ts +12 -0
  18. package/types/components/Insurance/FxInsuranceCouponBox.d.ts +10 -0
  19. package/types/components/Insurance/InsuranceDatePicker.d.ts +9 -0
  20. package/types/components/Insurance/InsurancePlans/InsurancePlanList.d.ts +1 -1
  21. package/types/components/Insurance/InsurancePlans/QuickCoveragePlanCard.d.ts +16 -0
  22. package/types/components/Insurance/InsurancePlans/QuickRecommendationsSection.d.ts +18 -0
  23. package/types/components/Insurance/InsuranceSummaryOverview.d.ts +7 -2
  24. package/types/components/Insurance/InsuranceTypeAndPeopleCountFields.d.ts +10 -0
  25. package/types/components/Insurance/InsuredTravelersTable.d.ts +6 -0
  26. package/types/components/Insurance/ProviderApiDebugDialog.d.ts +17 -0
  27. package/types/components/Insurance/SimpleDetail.d.ts +2 -1
  28. package/types/components/Insurance/StepFourPayment.d.ts +32 -5
  29. package/types/components/Insurance/StepOneForm.d.ts +11 -2
  30. package/types/components/Insurance/StepThree.d.ts +29 -0
  31. package/types/components/Insurance/StepThreeBuyerInfo.d.ts +4 -1
  32. package/types/components/Insurance/StepThreeInsuredPeople.d.ts +4 -1
  33. package/types/components/Insurance/documentScanAutofill.d.ts +37 -0
  34. package/types/components/Insurance/insuranceExcelImport.d.ts +13 -0
  35. package/types/components/Insurance/insuredPeopleImport.d.ts +23 -0
  36. package/types/components/Insurance/{FormElements.d.ts → shared/FormElements.d.ts} +13 -3
  37. package/types/components/Insurance/shared/InfoBlockCard.d.ts +10 -0
  38. package/types/components/Insurance/shared/PaymentMethodSelector.d.ts +10 -0
  39. package/types/components/Insurance/shared/SimpleSelect.d.ts +14 -0
  40. package/types/components/Insurance/shared/StepFooter.d.ts +8 -0
  41. package/types/components/Insurance/shared/index.d.ts +5 -0
  42. package/types/components/Insurance/types.d.ts +21 -6
  43. package/types/components/Insurance/validationUtils.d.ts +7 -1
  44. package/types/components/Modal/CancelTransactionModal.d.ts +1 -0
  45. package/types/components/Modal/ESimPurchaseModal.d.ts +4 -1
  46. package/types/components/Modal/EsimBankTransferModal.d.ts +13 -0
  47. package/types/components/Modal/InsurancePaymentModal.d.ts +2 -0
  48. package/types/components/Modal/MotorInsurancePaymentModal.d.ts +13 -0
  49. package/types/components/Modal/ProcessingOrderDialog.d.ts +8 -0
  50. package/types/components/MotorInsurance/Bike/BikePremiumSummary.d.ts +9 -0
  51. package/types/components/MotorInsurance/Bike/BikeStepOneForm.d.ts +30 -0
  52. package/types/components/MotorInsurance/Bike/BikeStepThreePayment.d.ts +26 -0
  53. package/types/components/MotorInsurance/Bike/BikeStepTwoVehicleInfo.d.ts +12 -0
  54. package/types/components/MotorInsurance/Bike/CreateBikeInsuranceForm.d.ts +17 -0
  55. package/types/components/MotorInsurance/Bike/index.d.ts +5 -0
  56. package/types/components/MotorInsurance/Car/CarPremiumSummary.d.ts +8 -0
  57. package/types/components/MotorInsurance/Car/CarStepFourPayment.d.ts +30 -0
  58. package/types/components/MotorInsurance/Car/CarStepOneForm.d.ts +27 -0
  59. package/types/components/MotorInsurance/Car/CarStepThreeInfo.d.ts +11 -0
  60. package/types/components/MotorInsurance/Car/CarStepTwoPlan.d.ts +11 -0
  61. package/types/components/MotorInsurance/Car/CreateCarInsuranceForm.d.ts +17 -0
  62. package/types/components/MotorInsurance/Car/car-form.constants.d.ts +23 -0
  63. package/types/components/MotorInsurance/Car/index.d.ts +6 -0
  64. package/types/components/MotorInsurance/CreateMotorInsuranceTransactionForm.d.ts +17 -0
  65. package/types/components/MotorInsurance/DocumentUploadPreview.d.ts +14 -0
  66. package/types/components/MotorInsurance/image-storage.utils.d.ts +18 -0
  67. package/types/components/MotorInsurance/index.d.ts +4 -0
  68. package/types/components/MotorInsurance/motor-insurance.types.d.ts +335 -0
  69. package/types/components/MotorInsurance/motor-insurance.validation.d.ts +21 -0
  70. package/types/components/Notification/NotificationBell.d.ts +5 -0
  71. package/types/components/Notification/NotificationItem.d.ts +8 -0
  72. package/types/components/Notification/NotificationPanel.d.ts +6 -0
  73. package/types/components/OrderPaymentTypeBadge.d.ts +4 -0
  74. package/types/components/PolicyGroup/InsurancePolicyGroupFormDialog.d.ts +10 -0
  75. package/types/components/TransactionList/PublicIdActionMenu.d.ts +3 -1
  76. package/types/constants/api-urls.d.ts +57 -5
  77. package/types/constants/business-codes.d.ts +2 -1
  78. package/types/constants/env.d.ts +3 -0
  79. package/types/constants/policy-enums.d.ts +11 -0
  80. package/types/constants/regex.d.ts +4 -0
  81. package/types/constants/tenant.d.ts +3 -0
  82. package/types/constants/transaction-status-labels.d.ts +3 -0
  83. package/types/embeded-main.d.ts +1 -0
  84. package/types/hooks/fetchEsimTransaction.d.ts +2 -0
  85. package/types/hooks/transactions/useGroupTransactions.d.ts +10 -10
  86. package/types/hooks/traveller-confirmation/submit-confirmation.util.d.ts +1 -0
  87. package/types/hooks/traveller-confirmation/traveller-confirmation-flow.d.ts +4 -0
  88. package/types/hooks/traveller-confirmation/types.d.ts +22 -0
  89. package/types/hooks/traveller-confirmation/usePurchaseTravellerConfirmation.d.ts +12 -0
  90. package/types/hooks/traveller-confirmation/useTravellerConfirmationFetch.d.ts +2 -0
  91. package/types/hooks/useAdminDashboard.d.ts +19 -0
  92. package/types/hooks/useAutoSelectBankBranchAndDepartment.d.ts +19 -0
  93. package/types/hooks/useBankOutsideWorkingHoursNotice.d.ts +5 -0
  94. package/types/hooks/useConfirmTransaction.d.ts +15 -31
  95. package/types/hooks/useCoupon.d.ts +95 -0
  96. package/types/hooks/useCouponValidation.d.ts +29 -0
  97. package/types/hooks/useCreateAutoCoupon.d.ts +5 -0
  98. package/types/hooks/useFxPrefill.d.ts +19 -0
  99. package/types/hooks/useGroupCustomers.d.ts +12 -9
  100. package/types/hooks/useInsuranceData.d.ts +3 -11
  101. package/types/hooks/useInsurancePlans.d.ts +13 -1
  102. package/types/hooks/useInsuranceTransaction.d.ts +34 -4
  103. package/types/hooks/useLocationData.d.ts +22 -0
  104. package/types/hooks/useMotorInsurance.d.ts +17 -0
  105. package/types/hooks/useMotorInsuranceTransaction.d.ts +124 -0
  106. package/types/hooks/useMotorQuote.d.ts +15 -0
  107. package/types/hooks/useNotifications.d.ts +10 -0
  108. package/types/hooks/usePolicyGroups.d.ts +1 -0
  109. package/types/hooks/useTenantList.d.ts +3 -4
  110. package/types/hooks/useUserById.d.ts +7 -0
  111. package/types/hooks/useUserSearch.d.ts +10 -0
  112. package/types/hooks/useUsersByTenantTypes.d.ts +11 -0
  113. package/types/hooks/useVehicleRegistrationScan.d.ts +39 -0
  114. package/types/pages/admin/CreateOrderOnBehalfTest.d.ts +3 -0
  115. package/types/pages/admin/coupons/CampaignCouponTable.d.ts +13 -0
  116. package/types/pages/admin/coupons/CampaignDetailPage.d.ts +1 -0
  117. package/types/pages/admin/coupons/CampaignListPage.d.ts +1 -0
  118. package/types/pages/admin/coupons/CouponFormPage.d.ts +1 -0
  119. package/types/pages/admin/insurance/create-insurance-transaction/AdminCreateInsuranceTransactionPage.d.ts +2 -0
  120. package/types/pages/admin/insurance/edit-insurance-transaction/AdminEditInsuranceTransactionPage.d.ts +1 -0
  121. package/types/pages/admin/insurance-policy-management/InsurancePolicyManagement.d.ts +1 -0
  122. package/types/pages/admin/motor-insurance/create-motor-transaction/AdminCreateMotorBikeTransactionPage.d.ts +1 -0
  123. package/types/pages/admin/motor-insurance/create-motor-transaction/AdminCreateMotorCarTransactionPage.d.ts +1 -0
  124. package/types/pages/admin/motor-insurance/edit-motor-transaction/AdminEditMotorTransactionPage.d.ts +1 -0
  125. package/types/pages/admin/motor-insurance-transaction-detail/MotorInsuranceTransactionDetailPage.d.ts +1 -0
  126. package/types/pages/admin/motor-insurance-transaction-list/MotorInsuranceTransactionListPage.d.ts +5 -0
  127. package/types/pages/agency/home/HomePage.d.ts +1 -0
  128. package/types/pages/agency/home/constants.d.ts +16 -0
  129. package/types/pages/agency/insurance/motor-transaction-approval/MotorInsuranceTransactionApprovalPage.d.ts +1 -0
  130. package/types/pages/agency/insurance/motor-transaction-create/CreateCarInsuranceTransactionPage.d.ts +1 -0
  131. package/types/pages/agency/insurance/motor-transaction-create/CreateMotorInsuranceTransactionPage.d.ts +1 -0
  132. package/types/pages/agency/insurance/motor-transaction-detail/MotorInsuranceTransactionDetailPage.d.ts +1 -0
  133. package/types/pages/agency/insurance/motor-transaction-list/MotorInsuranceTransactionListPage.d.ts +6 -0
  134. package/types/pages/agency/insurance/transaction-approval/InsuranceTransactionApprovalPage.d.ts +1 -0
  135. package/types/pages/agency/insurance/transaction-create/CreateInsuranceTransactionPage.d.ts +2 -0
  136. package/types/pages/agency/traveller-confirmation/PurchaseTravellerConfirmation.d.ts +5 -0
  137. package/types/pages/agency/traveller-confirmation/TravellerPurchaseConfirmation.d.ts +2 -0
  138. package/types/pages/guest/insurance-create.d.ts +4 -1
  139. package/types/pages/guest/motor-insurance-create.d.ts +6 -0
  140. package/types/providers/AppSettingsProvider.d.ts +1 -0
  141. package/types/store/useNotificationStore.d.ts +16 -0
  142. package/types/store/useTenantStore.d.ts +12 -0
  143. package/types/store/useTrackingStore.d.ts +10 -0
  144. package/types/types/app-settings.d.ts +13 -1
  145. package/types/types/coupon.d.ts +70 -0
  146. package/types/types/enum.d.ts +15 -2
  147. package/types/types/insurance-transaction.dto.d.ts +22 -1
  148. package/types/types/insurance.d.ts +19 -2
  149. package/types/types/notification.d.ts +23 -0
  150. package/types/types/response.dto.d.ts +53 -5
  151. package/types/types/sdk.d.ts +5 -1
  152. package/types/types/tracking.dto.d.ts +21 -0
  153. package/types/util/booker-display.d.ts +6 -0
  154. package/types/util/couponErrorMessages.d.ts +2 -0
  155. package/types/util/debt-report-display.d.ts +4 -0
  156. package/types/util/formatter.d.ts +6 -0
  157. package/types/util/fx-travelling-messages.d.ts +1 -0
  158. package/types/util/fx.d.ts +15 -0
  159. package/types/util/order-payment-display.d.ts +16 -0
  160. package/types/util/sim-display.d.ts +2 -0
  161. package/types/util/tracking.d.ts +19 -0
  162. package/types/util/transaction.util.d.ts +2 -1
  163. package/types/utils/bank.d.ts +4 -0
  164. package/types/utils/transaction-confirmation-link.d.ts +9 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gotrip-fx-transaction-form",
3
- "version": "1.0.201-dev",
3
+ "version": "1.0.201",
4
4
  "description": "FX Transaction Form ES6 module",
5
5
  "main": "index.js",
6
6
  "types": "types/index.d.ts",
@@ -4,7 +4,8 @@ type Props = {
4
4
  register: UseFormRegister<any>;
5
5
  agentIdentityFileInputRef: React.RefObject<HTMLInputElement>;
6
6
  isUploadingAgentIdentity: boolean;
7
- phoneNotice?: string | null;
7
+ phoneNotice?: string | string[] | null;
8
+ agentNotes?: string[];
8
9
  };
9
- export declare const Agent: ({ errors, register, agentIdentityFileInputRef, isUploadingAgentIdentity, phoneNotice, }: Props) => import("react/jsx-runtime").JSX.Element;
10
+ export declare const Agent: ({ errors, register, agentIdentityFileInputRef, isUploadingAgentIdentity, phoneNotice, agentNotes, }: Props) => import("react/jsx-runtime").JSX.Element;
10
11
  export {};
@@ -18,6 +18,7 @@ type Props = {
18
18
  handleSelectTicketAsImage: (files: File[]) => void;
19
19
  isMobileDevices: boolean;
20
20
  hideGDSTicketSearch?: boolean;
21
+ onCountryCodeDesChange?: (code: string) => void;
21
22
  };
22
- export declare const FlightInformation: ({ imageSrc, handleCaptureImage, handleAgentIdentityDocumentUpload, agentIdentityFileInputRef, setIsWebcamOpen, showGetTicketInfo, errors, register, getValues, setValue, trigger, isLoading, getFlightInfo, isVN, fileInputRef, handleSelectTicketAsImage, isMobileDevices, hideGDSTicketSearch, }: Props) => import("react/jsx-runtime").JSX.Element;
23
+ export declare const FlightInformation: ({ imageSrc, handleCaptureImage, handleAgentIdentityDocumentUpload, agentIdentityFileInputRef, setIsWebcamOpen, showGetTicketInfo, errors, register, getValues, setValue, trigger, isLoading, getFlightInfo, isVN, fileInputRef, handleSelectTicketAsImage, isMobileDevices, hideGDSTicketSearch, onCountryCodeDesChange, }: Props) => import("react/jsx-runtime").JSX.Element;
23
24
  export {};
@@ -0,0 +1,5 @@
1
+ type Props = {
2
+ messages: string[];
3
+ };
4
+ export declare const SelectingBankMessageAlerts: ({ messages }: Props) => import("react/jsx-runtime").JSX.Element | null;
5
+ export {};
@@ -0,0 +1,7 @@
1
+ import { default as React } from 'react';
2
+ import { IUser } from '../../../types/response.dto';
3
+ interface AgencyUserSelectorProps {
4
+ onUserSelected?: (user: IUser) => void;
5
+ }
6
+ export declare const AgencyUserSelector: React.FC<AgencyUserSelectorProps>;
7
+ export {};
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ import { IUser } from '../../../types/response.dto';
3
+ interface AgencyUserSelectorModalProps {
4
+ isOpen: boolean;
5
+ onClose: () => void;
6
+ onUserSelected: (user: IUser) => void;
7
+ initialUser?: IUser | null;
8
+ }
9
+ export declare const AgencyUserSelectorModal: React.FC<AgencyUserSelectorModalProps>;
10
+ export {};
@@ -0,0 +1,7 @@
1
+ import { EApprovalStatus } from '../types/insurance';
2
+ type ApprovalStatusBadgeProps = {
3
+ approvalBypassed?: boolean;
4
+ approvalStatus?: EApprovalStatus | null;
5
+ };
6
+ export declare const ApprovalStatusBadge: ({ approvalBypassed, approvalStatus, }: ApprovalStatusBadgeProps) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -7,5 +7,6 @@ export type EmbededIndividualAppProps = {
7
7
  displayDefaultBankLogo?: boolean;
8
8
  type?: ESdkFormType;
9
9
  scrollable?: boolean;
10
+ recommendBoxHeight?: string;
10
11
  };
11
- export declare const EmbededIndividualApp: ({ apiKey, externalCssUrl, hide, defaultBank, displayDefaultBankLogo, type, scrollable, }: EmbededIndividualAppProps) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const EmbededIndividualApp: ({ apiKey, externalCssUrl, hide, defaultBank, displayDefaultBankLogo, type, scrollable, recommendBoxHeight, }: EmbededIndividualAppProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { default as React } from 'react';
2
+ import { BankTransferInfo } from '../../types/response.dto';
3
+ interface BankTransferInfoDisplayProps {
4
+ bankTransferInfo: BankTransferInfo;
5
+ }
6
+ export declare const BankTransferInfoDisplay: React.FC<BankTransferInfoDisplayProps>;
7
+ export {};
@@ -0,0 +1,7 @@
1
+ import { TextProps } from '@chakra-ui/react';
2
+ interface DateDisplayProps extends TextProps {
3
+ date?: string | Date | null;
4
+ format?: string;
5
+ }
6
+ export declare const DateDisplay: ({ date, format, ...props }: DateDisplayProps) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,14 @@
1
+ export type TMultiTagOption = {
2
+ label: string;
3
+ value: string;
4
+ };
5
+ type MultiTagComboboxProps = {
6
+ options: TMultiTagOption[];
7
+ values: string[];
8
+ placeholder?: string;
9
+ emptyText?: string;
10
+ onChange: (nextValues: string[]) => void;
11
+ controlBorderRadius?: string;
12
+ };
13
+ export declare const MultiTagCombobox: ({ options, values, placeholder, emptyText, onChange, controlBorderRadius, }: MultiTagComboboxProps) => import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -0,0 +1,16 @@
1
+ import { ReactNode } from 'react';
2
+ interface PrimaryRadioGroupOption<T extends string> {
3
+ value: T;
4
+ label: ReactNode;
5
+ disabled?: boolean;
6
+ }
7
+ interface PrimaryRadioGroupProps<T extends string> {
8
+ value: T;
9
+ onValueChange: (value: T) => void;
10
+ options: PrimaryRadioGroupOption<T>[];
11
+ direction?: 'row' | 'column';
12
+ gap?: number;
13
+ disabled?: boolean;
14
+ }
15
+ export declare function PrimaryRadioGroup<T extends string>({ value, onValueChange, options, direction, gap, disabled, }: PrimaryRadioGroupProps<T>): import("react/jsx-runtime").JSX.Element;
16
+ export {};
@@ -0,0 +1,17 @@
1
+ type TTimeOption = {
2
+ label: string;
3
+ value: string;
4
+ };
5
+ type TimeRangeSelectProps = {
6
+ startValue: string;
7
+ endValue: string;
8
+ options: TTimeOption[];
9
+ onStartChange: (value: string) => void;
10
+ onEndChange: (value: string) => void;
11
+ error?: string;
12
+ startLabel?: string;
13
+ endLabel?: string;
14
+ fieldBorderRadius?: string;
15
+ };
16
+ export declare const TimeRangeSelect: ({ startValue, endValue, options, onStartChange, onEndChange, error, startLabel, endLabel, fieldBorderRadius, }: TimeRangeSelectProps) => import("react/jsx-runtime").JSX.Element;
17
+ export {};
@@ -1,8 +1,44 @@
1
+ import { ReactNode } from 'react';
2
+ import { TravelPlanFormValues, CoveragePlanPremium, BuyerFormValues, InsuredPerson } from './types';
3
+ import { EInsuranceProviderType, ETravelScope } from '../../types/insurance';
4
+ import { IUser } from '../../types/response.dto';
5
+ export type InsuranceFormInitialData = {
6
+ formValues: TravelPlanFormValues;
7
+ selectedPlan: CoveragePlanPremium | null;
8
+ buyerInfo: BuyerFormValues | null;
9
+ insuredPeople: InsuredPerson[];
10
+ recalculatedPremium?: CoveragePlanPremium['premium'] | null;
11
+ waitForApproval?: boolean;
12
+ appliedCoupon?: {
13
+ code: string;
14
+ discountAmount: number;
15
+ finalAmount: number;
16
+ description?: string | null;
17
+ } | null;
18
+ };
1
19
  export interface CreateInsuranceTransactionFormProps {
2
20
  storageKey: string;
3
- title?: string;
21
+ title?: ReactNode;
22
+ travelScope: ETravelScope;
4
23
  onBack?: () => void;
5
24
  onSuccess?: (transactionData: any) => void;
6
25
  scrollable?: boolean;
26
+ recommendBoxHeight?: string;
27
+ isAdminMode?: boolean;
28
+ selectedUser?: IUser | null;
29
+ onOpenUserSelector?: () => void;
30
+ initialData?: InsuranceFormInitialData | null;
31
+ mode?: 'create' | 'edit';
32
+ editingPublicId?: string;
33
+ initialProviders?: EInsuranceProviderType[];
34
+ prefillCouponCode?: string;
35
+ fxPrefillData?: {
36
+ startDate: Date | null;
37
+ endDate: Date | null;
38
+ destinationCountryId: number | null;
39
+ travellerFullName: string;
40
+ identityDocumentNumber: string | null;
41
+ travellerPhone: string | null;
42
+ };
7
43
  }
8
- export declare const CreateInsuranceTransactionForm: ({ storageKey, title, onBack, onSuccess, scrollable, }: CreateInsuranceTransactionFormProps) => import("react/jsx-runtime").JSX.Element;
44
+ export declare const CreateInsuranceTransactionForm: ({ storageKey, title, travelScope, onBack, onSuccess, scrollable, recommendBoxHeight, isAdminMode, selectedUser, onOpenUserSelector, initialData, mode, editingPublicId, initialProviders, prefillCouponCode, fxPrefillData, }: CreateInsuranceTransactionFormProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { Control } from 'react-hook-form';
2
+ import { TravelPlanFormValues } from './types';
3
+ interface DateRangePickerProps {
4
+ control: Control<TravelPlanFormValues>;
5
+ tripStart: Date | null;
6
+ tripEnd: Date | null;
7
+ onDatesChange?: (startDate: Date | null, endDate: Date | null) => void;
8
+ showLabel?: boolean;
9
+ labelPosition?: 'top' | 'left';
10
+ }
11
+ export declare const DateRangePicker: ({ control, tripStart, tripEnd, onDatesChange, showLabel, labelPosition, }: DateRangePickerProps) => import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,10 @@
1
+ interface FxInsuranceCouponBoxProps {
2
+ couponCode: string;
3
+ transactionPublicId: string;
4
+ countryCodeDes?: string | null;
5
+ countryNameDes?: string | null;
6
+ discountPercent?: number;
7
+ maxDiscountAmount?: number;
8
+ }
9
+ export declare const FxInsuranceCouponBox: ({ couponCode, transactionPublicId, countryCodeDes, countryNameDes, discountPercent, maxDiscountAmount, }: FxInsuranceCouponBoxProps) => import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,9 @@
1
+ import { default as DatePicker } from 'react-datepicker';
2
+ export interface DatePickerInputProps {
3
+ value?: string;
4
+ onClick?: () => void;
5
+ placeholder?: string;
6
+ borderRadius?: string;
7
+ }
8
+ export declare const DatePickerInput: import('react').ForwardRefExoticComponent<DatePickerInputProps & import('react').RefAttributes<HTMLInputElement>>;
9
+ export { DatePicker };
@@ -17,5 +17,5 @@ interface InsurancePlanListProps {
17
17
  travelInsuranceSettings?: Record<string, any>;
18
18
  travelPlan?: TravelPlanFormValues | null;
19
19
  }
20
- export declare const InsurancePlanList: ({ plans, loading, selectedPlanId, onPlanSelect, title, columns, emptyMessage, showDiscount, actionButtonText, travelInsuranceSettings, travelPlan, }: InsurancePlanListProps) => import("react/jsx-runtime").JSX.Element;
20
+ export declare const InsurancePlanList: ({ plans, loading, onPlanSelect, title, columns, emptyMessage, showDiscount, actionButtonText, travelInsuranceSettings, travelPlan, }: InsurancePlanListProps) => import("react/jsx-runtime").JSX.Element;
21
21
  export {};
@@ -0,0 +1,16 @@
1
+ import { CoveragePlanPremium, TravelPlanFormValues, InsuranceTypeAndPeopleCountValues } from '../types';
2
+ export interface QuickCoveragePlan {
3
+ countryId: number;
4
+ provider: string;
5
+ plan: CoveragePlanPremium;
6
+ }
7
+ interface QuickCoveragePlanCardProps {
8
+ quickPlan: QuickCoveragePlan;
9
+ countryName: string;
10
+ showCountryName?: boolean;
11
+ onBuyNow: (plan: CoveragePlanPremium, countryId: number, values: InsuranceTypeAndPeopleCountValues) => void;
12
+ travelInsuranceSettings?: Record<string, any>;
13
+ travelPlan?: TravelPlanFormValues | null;
14
+ }
15
+ export declare const QuickCoveragePlanCard: ({ quickPlan, countryName, showCountryName, onBuyNow, travelInsuranceSettings, travelPlan, }: QuickCoveragePlanCardProps) => import("react/jsx-runtime").JSX.Element | null;
16
+ export {};
@@ -0,0 +1,18 @@
1
+ import { QuickCoveragePlan } from './QuickCoveragePlanCard';
2
+ import { CoveragePlanPremium, TravelPlanFormValues, InsuranceTypeAndPeopleCountValues } from '../types';
3
+ interface QuickRecommendationsSectionProps {
4
+ countryId: number;
5
+ countryName: string;
6
+ plans: QuickCoveragePlan[];
7
+ countryOptions: Array<{
8
+ value: string;
9
+ label: string;
10
+ }>;
11
+ travelInsuranceSettings?: Record<string, any>;
12
+ travelPlan?: TravelPlanFormValues | null;
13
+ onBuyNow: (plan: CoveragePlanPremium, countryId: number, values: InsuranceTypeAndPeopleCountValues) => void;
14
+ onFetchPlansByCountry: (countryId: number) => Promise<QuickCoveragePlan[]>;
15
+ onPlansLoaded?: (countryId: number, plans: QuickCoveragePlan[]) => void;
16
+ }
17
+ export declare const QuickRecommendationsSection: ({ countryId, countryName, plans: plansProp, countryOptions, travelInsuranceSettings, travelPlan, onBuyNow, onFetchPlansByCountry, onPlansLoaded, }: QuickRecommendationsSectionProps) => import("react/jsx-runtime").JSX.Element;
18
+ export {};
@@ -1,7 +1,11 @@
1
1
  export type InsuranceSummaryOverviewProps = {
2
- title?: string;
3
2
  summary: {
4
3
  totalPremium: number;
4
+ premiumBreakdown?: {
5
+ beforeDiscount: number;
6
+ couponCode: string;
7
+ discountAmount: number;
8
+ };
5
9
  providerLabel: string;
6
10
  providerLogoUrl?: string;
7
11
  planName?: string | null;
@@ -10,6 +14,7 @@ export type InsuranceSummaryOverviewProps = {
10
14
  trip: {
11
15
  policyTypeLabel: string;
12
16
  travelTypeLabel: string;
17
+ destinationOrRouteLabel?: string;
13
18
  destinationLabel: string;
14
19
  insuranceTypeLabel: string;
15
20
  tripStart?: Date | string | null;
@@ -18,4 +23,4 @@ export type InsuranceSummaryOverviewProps = {
18
23
  travellersCount?: number | null;
19
24
  };
20
25
  };
21
- export declare const InsuranceSummaryOverview: ({ title, summary, trip, }: InsuranceSummaryOverviewProps) => import("react/jsx-runtime").JSX.Element;
26
+ export declare const InsuranceSummaryOverview: ({ summary, trip }: InsuranceSummaryOverviewProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { Control } from 'react-hook-form';
2
+ import { InsuranceTypeAndPeopleCountValues } from './types';
3
+ /** Props: control must have fields insuranceType, adultsCount, teenagerCount, childrenCount. */
4
+ interface InsuranceTypeAndPeopleCountFieldsProps {
5
+ control: Control<InsuranceTypeAndPeopleCountValues>;
6
+ setValue?: (name: keyof InsuranceTypeAndPeopleCountValues, value: number) => void;
7
+ showFamilyNote?: boolean;
8
+ }
9
+ export declare const InsuranceTypeAndPeopleCountFields: ({ control, setValue, showFamilyNote, }: InsuranceTypeAndPeopleCountFieldsProps) => import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,6 @@
1
+ import { InsuranceQuoteInsured, PolicyInsured } from '../../types/insurance-transaction.dto';
2
+ type Props = {
3
+ insureds: (PolicyInsured | InsuranceQuoteInsured)[];
4
+ };
5
+ export declare const InsuredTravelersTable: ({ insureds }: Props) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,17 @@
1
+ /** Request / response captured for one phase (báo giá or đơn hàng). */
2
+ export type ProviderPhasePayload = {
3
+ providerData?: Record<string, unknown> | null;
4
+ providerResponse?: Record<string, unknown> | null;
5
+ };
6
+ export type ProviderApiDebugModalProps = {
7
+ open: boolean;
8
+ onOpenChange: (open: boolean) => void;
9
+ orderOnly?: boolean;
10
+ quoteProviderData?: Record<string, unknown> | null;
11
+ quoteProviderResponse?: Record<string, unknown> | null;
12
+ orderProviderData?: Record<string, unknown> | null;
13
+ orderProviderResponse?: Record<string, unknown> | null;
14
+ };
15
+ export declare const ProviderApiDebugModal: ({ open, onOpenChange, orderOnly, quoteProviderData, quoteProviderResponse, orderProviderData, orderProviderResponse, }: ProviderApiDebugModalProps) => import("react/jsx-runtime").JSX.Element;
16
+ export type ProviderApiDebugButtonProps = Omit<ProviderApiDebugModalProps, 'open' | 'onOpenChange'>;
17
+ export declare const ProviderApiDebugButton: ({ orderOnly, quoteProviderData, quoteProviderResponse, orderProviderData, orderProviderResponse, }: ProviderApiDebugButtonProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -2,6 +2,7 @@ import { ReactNode } from 'react';
2
2
  interface SimpleDetailProps {
3
3
  label: string;
4
4
  value?: string | ReactNode | null;
5
+ labelColumnMinW?: string;
5
6
  }
6
- export declare const SimpleDetail: ({ label, value }: SimpleDetailProps) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const SimpleDetail: ({ label, value, labelColumnMinW }: SimpleDetailProps) => import("react/jsx-runtime").JSX.Element;
7
8
  export {};
@@ -1,14 +1,41 @@
1
1
  import { TravelPlanFormValues, CoveragePlanPremium, BuyerFormValues, InsuredPerson } from './types';
2
- import { EPaymentMethod } from '../../types/enum';
3
- interface StepFourPaymentProps {
2
+ import { ETravelScope } from '../../types/insurance';
3
+ import { EOrderPaymentType, EPaymentMethod } from '../../types/enum';
4
+ export interface StepFourPaymentProps {
5
+ travelScope: ETravelScope;
4
6
  travelPlan: TravelPlanFormValues;
5
7
  selectedPlan: CoveragePlanPremium | null;
6
8
  buyerInfo: BuyerFormValues | null;
7
9
  insuredPeople: InsuredPerson[];
8
10
  onBack?: () => void;
9
- onPayment?: (paymentMode: EPaymentMethod) => void;
11
+ onPayment?: (args: {
12
+ paymentMode?: EPaymentMethod;
13
+ paymentType: EOrderPaymentType;
14
+ }) => void;
10
15
  isProcessing?: boolean;
11
16
  onPremiumUpdate?: (premium: CoveragePlanPremium['premium'] | null) => void;
17
+ onCouponChange?: (coupon: {
18
+ code: string;
19
+ discountAmount: number;
20
+ finalAmount: number;
21
+ description?: string | null;
22
+ } | null) => void;
23
+ paymentType?: EOrderPaymentType;
24
+ isAdminMode?: boolean;
25
+ waitForApproval?: boolean;
26
+ onWaitForApprovalChange?: (value: boolean) => void;
27
+ hasSelectedUser?: boolean;
28
+ submitLabel?: string;
29
+ showApprovalToggle?: boolean;
30
+ mode?: 'create' | 'edit';
31
+ selectedUserTenantId?: number;
32
+ selectedUserId?: number;
33
+ initialCoupon?: {
34
+ code: string;
35
+ discountAmount: number;
36
+ finalAmount: number;
37
+ description?: string | null;
38
+ } | null;
39
+ prefillCouponCode?: string;
12
40
  }
13
- export declare const StepFourPayment: ({ travelPlan, selectedPlan, buyerInfo, insuredPeople, onBack, onPayment, isProcessing, onPremiumUpdate, }: StepFourPaymentProps) => import("react/jsx-runtime").JSX.Element;
14
- export {};
41
+ export declare const StepFourPayment: ({ travelScope, travelPlan, selectedPlan, buyerInfo, insuredPeople, onBack, onPayment, isProcessing, onPremiumUpdate, onCouponChange, paymentType: paymentTypeProp, isAdminMode, waitForApproval, onWaitForApprovalChange, hasSelectedUser, submitLabel, showApprovalToggle, mode, selectedUserTenantId, selectedUserId, initialCoupon, prefillCouponCode, }: StepFourPaymentProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,10 +1,19 @@
1
1
  import { Control } from 'react-hook-form';
2
- import { TravelPlanFormValues } from './types';
2
+ import { TravelPlanFormValues, CoveragePlanPremium, InsuranceTypeAndPeopleCountValues } from './types';
3
3
  interface StepOneFormProps {
4
4
  control: Control<TravelPlanFormValues>;
5
5
  tripStart: Date | null;
6
6
  tripEnd: Date | null;
7
7
  setValue: (name: keyof TravelPlanFormValues, value: any) => void;
8
+ isDomestic?: boolean;
9
+ onQuickPlanSelect?: (plan: CoveragePlanPremium, countryId: number, values: InsuranceTypeAndPeopleCountValues) => void;
10
+ recommendBoxHeight?: string;
11
+ onBack?: () => void;
12
+ onNext?: () => void;
13
+ isSubmitting?: boolean;
14
+ isStepOneReady?: boolean;
15
+ isGuest?: boolean;
16
+ showQuickRecommendations?: boolean;
8
17
  }
9
- export declare const StepOneForm: ({ control, tripStart, tripEnd, setValue }: StepOneFormProps) => import("react/jsx-runtime").JSX.Element;
18
+ export declare const StepOneForm: ({ control, tripStart, tripEnd, setValue, isDomestic, onQuickPlanSelect, recommendBoxHeight, onBack, onNext, isSubmitting, isStepOneReady, isGuest, showQuickRecommendations, }: StepOneFormProps) => import("react/jsx-runtime").JSX.Element;
10
19
  export {};
@@ -0,0 +1,29 @@
1
+ import { Control } from 'react-hook-form';
2
+ import { TravelPlanFormValues, CoveragePlanPremium, BuyerFormValues, InsuredPerson } from './types';
3
+ import { EInsuranceProviderType, EInsuranceType } from '../../types/insurance';
4
+ interface StepThreeProps {
5
+ control: Control<TravelPlanFormValues>;
6
+ tripStart: Date | null;
7
+ tripEnd: Date | null;
8
+ stepThreeChildStep: number;
9
+ onStepThreeChildStepClick: (step: number) => void;
10
+ selectedPlan: CoveragePlanPremium | null;
11
+ buyerInfo: BuyerFormValues | null;
12
+ insuredPeople: InsuredPerson[];
13
+ insuranceType: EInsuranceType;
14
+ adultsCount: number | null;
15
+ teenagersCount: number | null;
16
+ childrenCount: number | null;
17
+ isDomestic: boolean;
18
+ selectedProvider?: EInsuranceProviderType;
19
+ onBuyerInfoSubmit: (data: BuyerFormValues) => void;
20
+ onInsuredPeopleSubmit: (people: InsuredPerson[]) => void;
21
+ onStepThreeBack: () => void;
22
+ onDatesChange?: (startDate: Date | null, endDate: Date | null) => void;
23
+ buyerInfoFormRef: React.RefObject<HTMLFormElement | null>;
24
+ insuredPeopleFormRef: React.RefObject<HTMLFormElement | null>;
25
+ onInsuredPeopleListUpdate?: (people: InsuredPerson[]) => void;
26
+ insuredPeopleSnapshotRef?: React.MutableRefObject<(() => InsuredPerson[]) | null>;
27
+ }
28
+ export declare const StepThree: ({ control, tripStart, tripEnd, stepThreeChildStep, onStepThreeChildStepClick, selectedPlan, buyerInfo, insuredPeople, insuranceType, adultsCount, teenagersCount, childrenCount, isDomestic, selectedProvider, onBuyerInfoSubmit, onInsuredPeopleSubmit, onStepThreeBack, onDatesChange, buyerInfoFormRef, insuredPeopleFormRef, onInsuredPeopleListUpdate, insuredPeopleSnapshotRef, }: StepThreeProps) => import("react/jsx-runtime").JSX.Element;
29
+ export {};
@@ -1,9 +1,12 @@
1
+ import { EInsuranceProviderType } from '../../types/insurance';
1
2
  import { BuyerFormValues } from './types';
2
3
  interface StepThreeBuyerInfoProps {
3
4
  initialValues?: Partial<BuyerFormValues>;
4
5
  onSubmit: (values: BuyerFormValues) => void;
5
6
  onBack: () => void;
6
7
  onFormRef?: (form: HTMLFormElement | null) => void;
8
+ isDomestic?: boolean;
9
+ selectedProvider?: EInsuranceProviderType;
7
10
  }
8
- export declare const StepThreeBuyerInfo: ({ initialValues, onSubmit, onBack: _onBack, onFormRef, }: StepThreeBuyerInfoProps) => import("react/jsx-runtime").JSX.Element;
11
+ export declare const StepThreeBuyerInfo: ({ initialValues, onSubmit, onBack: _onBack, onFormRef, isDomestic, selectedProvider, }: StepThreeBuyerInfoProps) => import("react/jsx-runtime").JSX.Element;
9
12
  export {};
@@ -4,7 +4,9 @@ interface StepThreeInsuredPeopleProps {
4
4
  initialPeople: InsuredPerson[];
5
5
  insuranceType: EInsuranceType;
6
6
  adultsCount: number;
7
+ teenagersCount: number;
7
8
  childrenCount: number;
9
+ isDomestic: boolean;
8
10
  providerCode?: string | null;
9
11
  buyerInfo?: {
10
12
  isInsuredPerson?: boolean;
@@ -12,6 +14,7 @@ interface StepThreeInsuredPeopleProps {
12
14
  onSubmit: (people: InsuredPerson[]) => void;
13
15
  onBack: () => void;
14
16
  onFormRef?: (form: HTMLFormElement | null) => void;
17
+ insuredPeopleSnapshotRef?: React.MutableRefObject<(() => InsuredPerson[]) | null>;
15
18
  }
16
- export declare const StepThreeInsuredPeople: ({ initialPeople, insuranceType, providerCode, buyerInfo, onSubmit, onFormRef, }: StepThreeInsuredPeopleProps) => import("react/jsx-runtime").JSX.Element;
19
+ export declare const StepThreeInsuredPeople: ({ initialPeople, isDomestic, providerCode, buyerInfo, onSubmit, onFormRef, insuredPeopleSnapshotRef, }: StepThreeInsuredPeopleProps) => import("react/jsx-runtime").JSX.Element;
17
20
  export {};
@@ -0,0 +1,37 @@
1
+ import { FieldValues, UseFormSetValue } from 'react-hook-form';
2
+ import { DocumentScanResult } from '../../hooks/useDocumentScan';
3
+ export type CountryOption = {
4
+ value: string;
5
+ label: string;
6
+ };
7
+ export type ProvinceOption = {
8
+ value: string;
9
+ label: string;
10
+ };
11
+ type AutofillFieldPaths = {
12
+ fullName: any;
13
+ idType: any;
14
+ idNumber: any;
15
+ dateOfBirth: any;
16
+ gender: any;
17
+ nationality: any;
18
+ countryId?: any;
19
+ address?: any;
20
+ stateId?: any;
21
+ };
22
+ type AutofillHelpers = {
23
+ formatDateToYYYYMMDD: (dateStr: string | undefined) => string;
24
+ findCountryIdByNationality: (nationality: string | undefined, countryOptions: Array<{
25
+ value: string;
26
+ label: string;
27
+ }>) => number | null;
28
+ };
29
+ export declare function applyDocumentScanAutofillToRHF<TFieldValues extends FieldValues>({ setValue, data, fields, countryOptions, provinceOptions, helpers, }: {
30
+ setValue: UseFormSetValue<TFieldValues>;
31
+ data: DocumentScanResult;
32
+ fields: AutofillFieldPaths;
33
+ countryOptions: CountryOption[];
34
+ provinceOptions?: ProvinceOption[];
35
+ helpers: AutofillHelpers;
36
+ }): void;
37
+ export {};
@@ -0,0 +1,13 @@
1
+ import { InsuredPerson } from './types';
2
+ export type ParseInsuredExcelResult = {
3
+ ok: true;
4
+ people: InsuredPerson[];
5
+ skippedRows: number;
6
+ } | {
7
+ ok: false;
8
+ error: string;
9
+ };
10
+ /**
11
+ * Parse insured list from Excel (first sheet). Finds header row where column A is "STT".
12
+ */
13
+ export declare function parseInsuredPeopleFromExcelBuffer(buffer: ArrayBuffer): ParseInsuredExcelResult;
@@ -0,0 +1,23 @@
1
+ import { EIdType, EInsuranceType } from '../../types/insurance';
2
+ import { InsuredPerson } from './types';
3
+ /** Row is treated as an empty slot from plan counts (no name and no document number). */
4
+ export declare function isPlaceholderInsuredPerson(person: InsuredPerson): boolean;
5
+ /** Replace entire list with import only when every current row is a placeholder. */
6
+ export declare function shouldReplaceInsuredListWithImport(current: InsuredPerson[]): boolean;
7
+ export declare function makeIdDocumentKey(idType: EIdType | string | undefined, idNumber: string | undefined): string | null;
8
+ /** CCCD/CMND must pass 9/12 digit format before duplicate checks apply. */
9
+ export declare function isIdDocumentComparableForDuplicates(idType: EIdType | string | undefined, idNumber: string | undefined): boolean;
10
+ /** Row indices that are duplicate (2nd+ occurrence of same idType + idNumber); first row wins. */
11
+ export declare function findDuplicateIdDocumentRowIndices(rows: Array<{
12
+ idType: EIdType;
13
+ idNumber: string;
14
+ }>): Set<number>;
15
+ /**
16
+ * First occurrence per (idType, idNumber) keeps status; later duplicates get NEEDS_CHECK.
17
+ */
18
+ export declare function markDuplicateInsuredByIdDocument(people: InsuredPerson[]): {
19
+ people: InsuredPerson[];
20
+ duplicateCount: number;
21
+ };
22
+ /** After import/replace: first insured is primary (SELF) for individual policies. */
23
+ export declare function applyFirstPersonSelfForIndividualInsurance(people: InsuredPerson[], insuranceType: EInsuranceType): InsuredPerson[];
@@ -1,8 +1,8 @@
1
1
  import { Control, FieldPath, FieldValues, RegisterOptions } from 'react-hook-form';
2
2
  import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
3
- import { EDocumentType, DocumentScanResult } from '../../hooks/useDocumentScan';
3
+ import { EDocumentType, DocumentScanResult } from '../../../hooks/useDocumentScan';
4
4
  export declare const FieldLabel: ({ label, tooltip }: {
5
- label: string;
5
+ label: React.ReactNode;
6
6
  tooltip?: string;
7
7
  }) => import("react/jsx-runtime").JSX.Element;
8
8
  export declare const InfoBanner: ({ children }: {
@@ -33,7 +33,7 @@ export declare enum InputType {
33
33
  interface FormInputFieldProps<T extends FieldValues> {
34
34
  name: FieldPath<T>;
35
35
  control: Control<T>;
36
- label: string;
36
+ label: React.ReactNode;
37
37
  required?: boolean;
38
38
  placeholder?: string;
39
39
  type?: InputType;
@@ -49,6 +49,16 @@ interface FormInputFieldProps<T extends FieldValues> {
49
49
  disabled?: boolean;
50
50
  }
51
51
  export declare function FormInputField<T extends FieldValues>({ name, control, label, required, placeholder, type, rules, leftIcon, rightIcon, showScanButton, documentType, onScanClick, onScanComplete, showValidationState, isValid, disabled, }: FormInputFieldProps<T>): import("react/jsx-runtime").JSX.Element;
52
+ interface FormTextareaFieldProps<T extends FieldValues> {
53
+ name: FieldPath<T>;
54
+ control: Control<T>;
55
+ label: string;
56
+ required?: boolean;
57
+ placeholder?: string;
58
+ rules?: RegisterOptions<T>;
59
+ rows?: number;
60
+ }
61
+ export declare function FormTextareaField<T extends FieldValues>({ name, control, label, required, placeholder, rules, rows, }: FormTextareaFieldProps<T>): import("react/jsx-runtime").JSX.Element;
52
62
  interface CountryComboboxProps {
53
63
  options: {
54
64
  value: string;
@@ -0,0 +1,10 @@
1
+ import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
2
+ import { ReactNode } from 'react';
3
+ interface InfoBlockCardProps {
4
+ title: string;
5
+ icon?: IconDefinition;
6
+ onEdit?: () => void;
7
+ children: ReactNode;
8
+ }
9
+ export declare function InfoBlockCard({ title, icon, onEdit, children }: InfoBlockCardProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,10 @@
1
+ import { EPaymentMethod } from '../../../types/enum';
2
+ export type PaymentMethodSelectorVariant = 'buttons' | 'radio';
3
+ interface PaymentMethodSelectorProps {
4
+ value: EPaymentMethod;
5
+ onChange: (value: EPaymentMethod) => void;
6
+ showTopupBalance?: boolean;
7
+ variant?: PaymentMethodSelectorVariant;
8
+ }
9
+ export declare function PaymentMethodSelector({ value, onChange, showTopupBalance, variant, }: PaymentMethodSelectorProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};