import { IFile, IAddress, CURRENCY, DateOrString, ITimestamps, IPartner, LANGUAGE, DISCOUNT_TYPE, BOOKING_SOURCE } from '.'; import { IUser } from './user'; export declare enum CANCELLATION_TYPE { NON_REFUNDABLE = "NON_REFUNDABLE", PARTIALLY_REFUNDABLE = "PARTIALLY_REFUNDABLE", FULLY_REFUNDABLE = "FULLY_REFUNDABLE" } export declare const ALL_CANCELLATION_TYPE: CANCELLATION_TYPE[]; export declare enum COMPANY_AMENITY_CATEGORY { GENERAL = "GENERAL", SAFETY_FEATURES = "SAFETY_FEATURES", PHYSICAL_DISTANCING = "PHYSICAL_DISTANCING", CLEANLINESS_AND_DISINFECTION = "CLEANLINESS_AND_DISINFECTING", FOOD_AND_DRINKS_SAFETY = "FOOD_AND_DRINKS_SAFETY", ACTIVITIES = "ACTIVITIES", FOOD_AND_DRINKS = "FOOD_AND_DRINKS", POOL_AND_WELLNESS = "POOL_AND_WELLNESS", TRANSPORT = "TRANSPORT", ADDITIONAL_SERVICES = "ADDITIONAL_SERVICES", COMMON_AREAS = "COMMON_AREAS", FAMILY_ENTERTAINMENT = "FAMILY_ENTERTAINMENT", CLEANING_SERVICES = "CLEANING_SERVICES", BUSINESS_FACILITIES = "BUSINESS_FACILITIES", MISCELLANEOUS = "MISCELLANEOUS", SAFETY_AND_SECURITY = "SAFETY_AND_SECURITY", PETS = "PETS" } export declare enum HOLIDAY { LOCAL_HOLIDAY = "LOCAL_HOLIDAY", COMMON_HOLIDAY = "COMMON_HOLIDAY" } export declare const ALL_COMPANY_AMENITY_CATEGORY: COMPANY_AMENITY_CATEGORY[]; export interface IMarketplaceEnabledFeatures { enableDynamicPricing?: boolean; enableSmartAccess?: boolean; enablePremiumGuestExperience?: boolean; enableReviewBooster?: boolean; enableChatMessages?: boolean; enableGoogleHotelAds?: boolean; enableWhatsAppGuestMessages?: boolean; } export declare const DEFAULT_MARKETPLACE_FEATURES: IMarketplaceEnabledFeatures; export interface ICompanyAmenity { key?: string | null; category: COMPANY_AMENITY_CATEGORY; hasExtraCost?: boolean; isSelected?: boolean; } export interface ICompanyPublicInformation { description: { highlights?: { title?: string; description?: string; }[]; general: string; location: string; }; cancellations: { type: CANCELLATION_TYPE; description: string; }; quietHours: { startTime: DateOrString; endTime: DateOrString; }; nearbyPlaces?: { name: string; distance: number; }[]; generalRules: string; payment: string; } export interface IHoliday { name: string; description: string; date: string; type: HOLIDAY; enableDynamicPricing?: boolean; } export interface ICompany extends ITimestamps { id?: string; name?: string; stars?: number; partnerId?: string; parentCompanyId?: string; companyCreatedByUserId?: string; mainUserId?: string; subdomain?: string; isEnabled?: boolean; isDefault?: boolean; language?: LANGUAGE; phoneNumbers?: string[]; whatsappNumber?: string; timezone?: string; checkinTime?: { start: DateOrString; end: DateOrString; }; checkoutTime?: { start: DateOrString; end: DateOrString; }; pricing?: { [key: string]: number; }; currency?: CURRENCY; email?: string; integrations?: { channelManagerType: 'BNOVO' | 'CHANNEX'; bnovo?: { id: string; }; stripe?: { accountId: string; }; channex?: { id: string; isEnabled?: boolean; }; propertyType?: 'HOTEL' | 'APARTMENT'; }; address?: IAddress; locationDescription?: { title?: string; description?: string; }; amenities?: ICompanyAmenity[]; parentCompany?: ICompany; partner?: IPartner; themeData?: { logo?: IFile | null; palette?: { primary?: { main?: string; }; calendar?: { useCustomColors?: boolean; showPaymentStatusColors?: boolean; colors?: Array<{ name?: string; type?: string; bookingSource?: BOOKING_SOURCE | null; hexColor?: string; }>; }; }; }; data?: any; images?: IFile[]; google?: { mapsId?: string; reviewUrl?: string; minimumRating?: number; credentials?: { accessToken?: string; refreshToken?: string; expiresIn?: string; }; }; smartPricing?: { minimum?: number; maximum?: number; }; publicInformation?: ICompanyPublicInformation; website?: { url?: string; shortUrl?: string; connectToVisitorDBW?: boolean; requestCreditCardInformation?: boolean; requestAddressInformation?: boolean; stripePaymentsEnabled?: boolean; enableMyLike?: boolean; websiteBookingsConfirmationNeeded?: boolean; headerLinks?: Array<{ name?: string; url?: string; }>; footerLinks?: Array<{ name?: string; url?: string; }>; }; socials?: { instagramUrl?: string; facebookUrl?: string; }; npsScore?: number; holidays?: IHoliday[]; owDiscountRules?: IOWDiscountRule[]; bookings?: ICompanyBookingsSettings; legalInformation?: ICompanyLegalInformation; bankInformation?: ICompanyBankInformation; invoices?: ICompanyInvoicesInformation; trialEndDate?: DateOrString; isPayingCustomer?: boolean; includeFeesInFinalCostExternalBookings?: boolean; includeMainUserAsEmailCC?: boolean; customerDataStoragePeriod?: CUSTOMER_DATA_STORAGE_PERIOD; lastExternalBookingsSync?: DateOrString; mainUser?: IUser; nextInvoiceId?: string; marketplaceEnabledFeatures?: IMarketplaceEnabledFeatures; } export declare enum CUSTOMER_DATA_STORAGE_PERIOD { SIX_MONTHS = "SIX_MONTHS", ONE_YEAR = "ONE_YEAR", TWO_YEARS = "TWO_YEARS", FOUR_YEARS = "FOUR_YEARS", NEVER = "NEVER" } export interface ICompanyLegalInformation { name?: string; address?: string; legalForm?: string; representativeName?: string; registrationNumber?: string; registrationCourt?: string; vatNumber?: string; phoneNumber?: string; email?: string; termsAndConditionsText?: string; termsAndConditionsUrl?: string; requireTermsAcceptance?: boolean; privacyPolicyUrl?: string; privacyPolicyText?: string; } export interface ICompanyBankInformation { bankName?: string; iban?: string; swift?: string; } export interface ICompanyInvoicesInformation { datev?: { advisorNumber?: string; clientNumber?: string; fiscalYearStartMonth?: number; revenue7Account?: string; revenue19Account?: string; noTaxAccount?: string; touristTaxAccount?: string; debtorAccount?: string; touristTaxServiceIds?: string[]; }; bedTaxRate?: number | null; ownerName?: string; tourismTax?: number; reducedSalesTax?: number; salesTax?: number; splitBreakfastIntoFoodAndDrinks?: boolean; breakfastFoodPercentage?: number; showLogoInvoices?: boolean; headerSpacing?: number; invoicePrefix?: string; } export interface IOWDiscountRule { lengthOfStay: number; type?: DISCOUNT_TYPE; value?: number; } export interface ICompanyBookingsSettings { hasManualCheckout?: boolean; gatherAdditionalGuestsInformation?: boolean; digitsOnlyBookingCode?: boolean; blockSamedayCheckinsAfter?: DateOrString; adultAgeThreshold?: number; gatherBookingAddress: boolean; }