import { FC, ReactType } from 'react'; import { LinkProps } from '../../index'; import 'font-awesome/css/font-awesome.min.css'; import { CoordsProps } from '../../components/AddressMap'; import { FormCustomerDetailsValues } from '../../components/FormCustomerDetails'; import { FormCustomerBillingDetailsValues } from '../../components/FormCustomerBillingDetails'; import { PaymentFormValues, PaymentMethodData } from '../../components/FormPayment'; import { FormServiceDetailsValues } from '../../components/FormServiceDetails'; export interface DraftServiceCall { price: number; priceDiscounted: number; priceHappinessGuarantee: number; priceHappinessGuaranteeDiscounted: number; currency: string; servicePackages: { price: number; priceDiscounted: number; name: string; }[]; vouchers: { calculatedDiscountAmount: number; code: string; }[]; } export interface BookingSubmitValues { serviceLocationData: FormCustomerDetailsValues; serviceDetailsData: FormServiceDetailsValues; serviceBillingData: FormCustomerBillingDetailsValues; paymentData: PaymentFormValues; additionalData: { position: CoordsProps; receivesNewsletter: boolean; }; } export interface BookingFunnelProps { BookingForm?: ReactType; PaymentForm?: ReactType; ServiceDetailsForm?: ReactType; servicePackage: { name: string; price: string; currencyIsoCode: string; campaign?: { event: string; }; }; BillingForm?: ReactType; translations: { steps?: { step1: string; step2: string; step3: string; step4: string; }; serviceContactAndLocation: string; alreadyCustomer: string; loginHere: string; differingBillingAddress: string; invoiceAddress: string; payment: string; summary: string; dateTime: string; serviceLocation: string; voucher: string; total: string; summaryInfo: string; newsUpdates: string; accept: string; continueButton: string; bookFor: string; login: string; mapTitle: string; mapText: string; mapMarkerName: string; editAddressButton: string; useAddressButton: string; priceHappiness: string; bookError: string; close: string; resetPassword: string; }; LoginForm?: ReactType; PasswordResetForm?: ReactType; onSubmit: (data: BookingSubmitValues) => void; terms: LinkProps; LinkProps?: LinkProps; locale: string; isMilaFriend: boolean; googleApiKey?: string; addVoucher?: (code: string | string[]) => Promise; removeVoucher?: (code: string) => void; draftServiceCall?: DraftServiceCall; verifyCreditCard?: (paymentData: PaymentFormValues, billingData: FormCustomerBillingDetailsValues) => Promise; deviceType?: string; isAuthenticated?: boolean; } declare global { interface Window { visualViewport: EventTarget; } } export declare const checkIfDateIsSame: (date1: any, date2: any) => boolean; declare const BookingFunnelTemplate: FC; export default BookingFunnelTemplate;