export interface TravelEnquiryFormProps { isApp?: boolean; onClose?: () => void; } export interface FormData { firstName: string; lastName: string; telephone: string; email: string; contactByTelephone: boolean; contactByEmail: boolean; appointmentVideoCall: boolean; appointmentTelephoneCall: boolean; preferredDate: string; preferredTime: string; departurePort: string; destination: string; month: string; year: string; duration: string; adults: string; children: string; budgetMin: number; budgetMax: number; subscriberCode: string; comments: string; newsletterOptIn: boolean; } export interface StepValidation { isValid: boolean; errors: Record; } export interface StepProps { isApp?: boolean; formData: FormData; errors: Record; updateField: ( field: keyof FormData, value: string | number | boolean ) => void; } export interface StepIndicatorProps { currentStep: number; } declare global { interface Window { utag?: { link: (params: Record) => void; }; } } export interface FormFieldProps { isApp?: boolean; id: string; label: string; required?: boolean; type?: string; value: string; field: keyof FormData; error?: string; updateField: (field: keyof FormData, value: string) => void; } export interface SelectFieldProps extends Omit { options: Array<{ label: string; value: string }>; placeholder?: string; } export interface Option { value: string; label: string; } export interface CustomSelectProps { id?: string; value: string; options: Option[]; onChange: (value: string) => void; $hasError?: boolean; isApp?: boolean; placeholder?: string; }