import { a as toStableSearchInputParameterValues, c as BackendKind, i as toStableSearchInputBackendQueryKeys, l as isBackendKind, n as StableSearchInputGroup, o as toStableSearchInputQueryKeys, r as defineStableSearchInputGroup, s as BACKEND_KINDS, t as STABLE_SEARCH_INPUTS } from "./stable-search-inputs-fHHm28ST.mjs"; import { Context, DateTime, Duration, Effect, Layer, ManagedRuntime, Schedule, Schema } from "effect"; import { TypedDocumentNode } from "@graphql-typed-document-node/core"; //#region src/domain/availability/calendar-day.d.ts export declare const AvailabilityCalendarDayStatusSchema: Schema.Literals; export declare const AvailabilityCalendarDaySchema: Schema.Struct<{ readonly canBeStartDate: Schema.Boolean; readonly isAvailableDate: Schema.Boolean; readonly status: Schema.Literals; readonly formattedPrice: Schema.NullOr; /** `formattedPrice` as a number, omitted whenever that is null. */ readonly price: Schema.optionalKey>; readonly tooltip: Schema.NullOr; }>; export declare const AvailabilityEndDateStatusSchema: Schema.Union, Schema.Literals]>; export declare const AvailabilityEndDateOptionSchema: Schema.Struct<{ readonly canBeEndDate: Schema.Boolean; readonly canBeNewStartDate: Schema.Boolean; readonly status: Schema.Union, Schema.Literals]>; readonly tooltip: Schema.NullOr; }>; type AvailabilityCalendarDay = typeof AvailabilityCalendarDaySchema.Type; type AvailabilityCalendarDayStatus = typeof AvailabilityCalendarDayStatusSchema.Type; type AvailabilityEndDateOption = typeof AvailabilityEndDateOptionSchema.Type; type AvailabilityEndDateStatus = typeof AvailabilityEndDateStatusSchema.Type; //#endregion //#region src/domain/availability/get-initial-availability-input.d.ts export declare const AvailabilityGetInitialAvailabilityInputSchema: Schema.Struct<{ readonly locale: Schema.Literals; readonly rentalId: Schema.String; readonly calculateFromDate: Schema.String; readonly calculateThroughDate: Schema.String; }>; type AvailabilityGetInitialAvailabilityInput = typeof AvailabilityGetInitialAvailabilityInputSchema.Type; //#endregion //#region src/domain/availability/get-initial-availability-output.d.ts export declare const AvailabilityGetInitialAvailabilityOutputSchema: Schema.Struct<{ readonly calendarDays: Schema.$Record; readonly formattedPrice: Schema.NullOr; readonly price: Schema.optionalKey>; readonly tooltip: Schema.NullOr; }>>; readonly minPersons: Schema.NullOr; readonly maxPersons: Schema.NullOr; readonly maxAdults: Schema.NullOr; }>; type AvailabilityGetInitialAvailabilityOutput = typeof AvailabilityGetInitialAvailabilityOutputSchema.Type; //#endregion //#region src/domain/availability/get-prices-by-day-input.d.ts export declare const AvailabilityGetPricesByDayInputSchema: import("effect/Schema").Struct<{ readonly locale: import("effect/Schema").Literals; readonly rentalId: import("effect/Schema").String; readonly calculateFromDate: import("effect/Schema").String; readonly calculateThroughDate: import("effect/Schema").String; }>; type AvailabilityGetPricesByDayInput = typeof AvailabilityGetPricesByDayInputSchema.Type; //#endregion //#region src/domain/availability/get-prices-by-day-output.d.ts export declare const AvailabilityPriceByDaySchema: Schema.Struct<{ readonly price: Schema.Number; readonly minNights: Schema.NullOr; readonly formattedPrice: Schema.String; }>; export declare const AvailabilityGetPricesByDayOutputSchema: Schema.Struct<{ readonly currency: Schema.NullOr; readonly days: Schema.$Record; readonly formattedPrice: Schema.String; }>>; }>; type AvailabilityPriceByDay = typeof AvailabilityPriceByDaySchema.Type; type AvailabilityGetPricesByDayOutput = typeof AvailabilityGetPricesByDayOutputSchema.Type; //#endregion //#region src/domain/availability/get-start-date-selected-availability-input.d.ts export declare const AvailabilityGetStartDateSelectedAvailabilityInputSchema: Schema.Struct<{ readonly locale: Schema.Literals; readonly rentalId: Schema.String; readonly selectedStartDate: Schema.String; readonly calculateFromDate: Schema.String; readonly calculateThroughDate: Schema.String; }>; type AvailabilityGetStartDateSelectedAvailabilityInput = typeof AvailabilityGetStartDateSelectedAvailabilityInputSchema.Type; //#endregion //#region src/domain/availability/get-start-date-selected-availability-output.d.ts export declare const AvailabilityGetStartDateSelectedAvailabilityOutputSchema: Schema.Struct<{ readonly calendarDays: Schema.$Record, Schema.Literals]>; readonly tooltip: Schema.NullOr; }>>; }>; type AvailabilityGetStartDateSelectedAvailabilityOutput = typeof AvailabilityGetStartDateSelectedAvailabilityOutputSchema.Type; //#endregion //#region src/domain/quote/model/error.d.ts declare const InvalidAdditionalServiceQuantity_base: Schema.Class, import("effect/Cause").YieldableError>; export declare class InvalidAdditionalServiceQuantity extends InvalidAdditionalServiceQuantity_base {} declare const UnknownAdditionalService_base: Schema.Class, import("effect/Cause").YieldableError>; export declare class UnknownAdditionalService extends UnknownAdditionalService_base {} declare const UnavailableAdditionalService_base: Schema.Class, import("effect/Cause").YieldableError>; export declare class UnavailableAdditionalService extends UnavailableAdditionalService_base {} declare const AdditionalServiceLimitExceeded_base: Schema.Class, import("effect/Cause").YieldableError>; export declare class AdditionalServiceLimitExceeded extends AdditionalServiceLimitExceeded_base {} declare const UnknownCancellationPolicy_base: Schema.Class, import("effect/Cause").YieldableError>; declare class UnknownCancellationPolicy extends UnknownCancellationPolicy_base {} declare const UnavailableCancellationPolicy_base: Schema.Class, import("effect/Cause").YieldableError>; export declare class UnavailableCancellationPolicy extends UnavailableCancellationPolicy_base {} declare const UnavailableCancellationPolicyQuote_base: Schema.Class, import("effect/Cause").YieldableError>; declare class UnavailableCancellationPolicyQuote extends UnavailableCancellationPolicyQuote_base {} declare const UnavailableQuoteCombination_base: Schema.Class, import("effect/Cause").YieldableError>; declare class UnavailableQuoteCombination extends UnavailableQuoteCombination_base {} type GuestQuoteSelectionError = InvalidAdditionalServiceQuantity | UnknownAdditionalService | UnavailableAdditionalService | AdditionalServiceLimitExceeded | UnknownCancellationPolicy | UnavailableCancellationPolicy | UnavailableCancellationPolicyQuote | UnavailableQuoteCombination; //#endregion //#region src/domain/quote/model/additional-service.d.ts declare const InternalAdditionalServiceSchema: Schema.Struct<{ readonly id: Schema.String; readonly label: Schema.String; readonly charge: Schema.String; readonly available: Schema.optionalKey; readonly unavailableReason: Schema.optionalKey; readonly proposedQuantity: Schema.optionalKey; readonly maxPerBooking: Schema.optionalKey; readonly description: Schema.optionalKey; readonly images: Schema.optionalKey>>; readonly chargeAmount: Schema.Number; readonly calculation: Schema.Union, Schema.Literal<"PER_NIGHT">, Schema.Literal<"PER_DAY">, Schema.Literal<"PER_USAGE">]>; readonly leadTimeDays: Schema.optionalKey; }>; type InternalAdditionalService = typeof InternalAdditionalServiceSchema.Type; //#endregion //#region src/domain/locale.d.ts export declare const LocaleSchema: Schema.Literals; type Locale = typeof LocaleSchema.Type; export declare const LocalDateStringSchema: Schema.String; type LocalDateString = typeof LocalDateStringSchema.Type; export declare const isLocalDateString: (value: string) => value is LocalDateString; export declare const Iso31661Alpha2CountryCodeSchema: Schema.String; type Iso31661Alpha2CountryCode = typeof Iso31661Alpha2CountryCodeSchema.Type; //#endregion //#region src/domain/quote/model/booking-card.d.ts declare const InternalGuestQuoteBookingCardSchema: Schema.Struct<{ readonly sections: Schema.$Array; readonly modifiers: Schema.optionalKey>>; readonly totalBeforeModifiers: Schema.optionalKey; }>; readonly subItems: Schema.optionalKey; readonly modifiers: Schema.optionalKey>>; readonly totalBeforeModifiers: Schema.optionalKey; }>>>; }>>; readonly displayOrder: Schema.optionalKey; }>>; readonly total: Schema.Number; readonly totalBeforeModifiers: Schema.optionalKey; }>; type InternalGuestQuoteBookingCard = typeof InternalGuestQuoteBookingCardSchema.Type; export declare const GuestQuoteBookingCardDisplayOrder: { readonly inclusive: 10; readonly selectedAdditionalServices: 20; readonly other: 30; readonly tax: 40; readonly modifier: 50; readonly fallback: 100; }; //#endregion //#region src/domain/quote/model/cancellation-policy.d.ts declare const InternalCancellationPolicyOptionSchema: Schema.Struct<{ readonly id: Schema.String; readonly kind: Schema.Literals; readonly label: Schema.String; readonly description: Schema.optionalKey; readonly rules: Schema.optionalKey>>; readonly markUpPercentage: Schema.optionalKey; readonly processingFee: Schema.optionalKey; readonly withAlternativeCancellationPolicy: Schema.Boolean; readonly available: Schema.optionalKey; readonly unavailableReason: Schema.optionalKey; }>; type InternalCancellationPolicyOption = typeof InternalCancellationPolicyOptionSchema.Type; declare const CancellationPolicySelectionSchema: Schema.Struct<{ readonly policyId: Schema.String; readonly kind: Schema.Literals; readonly withAlternativeCancellationPolicy: Schema.Boolean; }>; type CancellationPolicySelection = typeof CancellationPolicySelectionSchema.Type; declare const CancellationPolicyQuoteVariantSchema: Schema.Struct<{ readonly policyId: Schema.String; readonly bookingCardInformation: Schema.Struct<{ readonly sections: Schema.$Array; readonly modifiers: Schema.optionalKey>>; readonly totalBeforeModifiers: Schema.optionalKey; }>; readonly subItems: Schema.optionalKey; readonly modifiers: Schema.optionalKey>>; readonly totalBeforeModifiers: Schema.optionalKey; }>>>; }>>; readonly displayOrder: Schema.optionalKey; }>>; readonly total: Schema.Number; readonly totalBeforeModifiers: Schema.optionalKey; }>; readonly baseTotal: Schema.Number; readonly currency: Schema.String; readonly additionalServices: Schema.$Array; readonly unavailableReason: Schema.optionalKey; readonly proposedQuantity: Schema.optionalKey; readonly maxPerBooking: Schema.optionalKey; readonly description: Schema.optionalKey; readonly images: Schema.optionalKey>>; readonly chargeAmount: Schema.Number; readonly calculation: Schema.Union, Schema.Literal<"PER_NIGHT">, Schema.Literal<"PER_DAY">, Schema.Literal<"PER_USAGE">]>; readonly leadTimeDays: Schema.optionalKey; }>>; readonly backendContext: Schema.optionalKey; readonly rentalId: Schema.String; readonly period: Schema.Struct<{ readonly start: Schema.String; readonly end: Schema.String; }>; readonly occupancy: Schema.Struct<{ readonly adults: Schema.Int; readonly children: Schema.Int; readonly childrenAges: Schema.optionalKey>; readonly babies: Schema.Int; readonly pets: Schema.Int; }>; readonly destinationCountryCode: Schema.optionalKey; readonly voucher: Schema.optionalKey; }>; readonly rawQuote: Schema.Unknown; readonly backend: Schema.Literal<"v9">; }>, Schema.Struct<{ readonly input: Schema.Struct<{ readonly locale: Schema.Literals; readonly rentalId: Schema.String; readonly period: Schema.Struct<{ readonly start: Schema.String; readonly end: Schema.String; }>; readonly occupancy: Schema.Struct<{ readonly adults: Schema.Int; readonly children: Schema.Int; readonly childrenAges: Schema.optionalKey>; readonly babies: Schema.Int; readonly pets: Schema.Int; }>; readonly destinationCountryCode: Schema.optionalKey; readonly voucher: Schema.optionalKey; }>; readonly rawQuote: Schema.Unknown; readonly backend: Schema.Literal<"v10">; }>]>>; }>; type CancellationPolicyQuoteVariant = typeof CancellationPolicyQuoteVariantSchema.Type; declare const MultiRateGuestRateSchema: Schema.Struct<{ readonly id: Schema.String; readonly serviceId: Schema.String; readonly serviceType: Schema.String; readonly billed: Schema.optionalKey>; readonly calculation: Schema.String; }>; type MultiRateGuestRate = typeof MultiRateGuestRateSchema.Type; declare const InternalMultiRateSchema: Schema.Struct<{ readonly id: Schema.String; readonly cancellationPolicyId: Schema.optionalKey; readonly baseRentRate: Schema.optionalKey; readonly guestRates: Schema.$Array>; }>; type InternalMultiRate = typeof InternalMultiRateSchema.Type; type MultiRateContext = { readonly guestRates: ReadonlyArray; readonly multiRates: ReadonlyArray; readonly includedServiceTypes: ReadonlySet; }; //#endregion //#region src/domain/quote/model/selection.d.ts declare const QuoteSelectionSchema: Schema.Struct<{ readonly id: Schema.String; readonly quantity: Schema.Int; }>; type QuoteSelection = typeof QuoteSelectionSchema.Type; //#endregion //#region src/domain/quote/operations/quote/input.d.ts export declare const QuoteQuoteInputSchema: Schema.Struct<{ readonly locale: Schema.Literals; readonly rentalId: Schema.String; readonly period: Schema.Struct<{ readonly start: Schema.String; readonly end: Schema.String; }>; readonly occupancy: Schema.Struct<{ readonly adults: Schema.Int; readonly children: Schema.Int; readonly childrenAges: Schema.optionalKey>; readonly babies: Schema.Int; readonly pets: Schema.Int; }>; readonly destinationCountryCode: Schema.optionalKey; readonly voucher: Schema.optionalKey; }>; type QuoteQuoteInput = typeof QuoteQuoteInputSchema.Type; export declare const GuestQuoteInputSchema: Schema.Struct<{ readonly locale: Schema.Literals; readonly rentalId: Schema.String; readonly period: Schema.Struct<{ readonly start: Schema.String; readonly end: Schema.String; }>; readonly occupancy: Schema.Struct<{ readonly adults: Schema.Int; readonly children: Schema.Int; readonly childrenAges: Schema.optionalKey>; readonly babies: Schema.Int; readonly pets: Schema.Int; }>; readonly destinationCountryCode: Schema.optionalKey; readonly voucher: Schema.optionalKey; }>; type GuestQuoteInput = QuoteQuoteInput; //#endregion //#region src/domain/quote/model/context.d.ts declare const QuoteBackendContextSchema: Schema.Union; readonly rentalId: Schema.String; readonly period: Schema.Struct<{ readonly start: Schema.String; readonly end: Schema.String; }>; readonly occupancy: Schema.Struct<{ readonly adults: Schema.Int; readonly children: Schema.Int; readonly childrenAges: Schema.optionalKey>; readonly babies: Schema.Int; readonly pets: Schema.Int; }>; readonly destinationCountryCode: Schema.optionalKey; readonly voucher: Schema.optionalKey; }>; readonly rawQuote: Schema.Unknown; readonly backend: Schema.Literal<"v9">; }>, Schema.Struct<{ readonly input: Schema.Struct<{ readonly locale: Schema.Literals; readonly rentalId: Schema.String; readonly period: Schema.Struct<{ readonly start: Schema.String; readonly end: Schema.String; }>; readonly occupancy: Schema.Struct<{ readonly adults: Schema.Int; readonly children: Schema.Int; readonly childrenAges: Schema.optionalKey>; readonly babies: Schema.Int; readonly pets: Schema.Int; }>; readonly destinationCountryCode: Schema.optionalKey; readonly voucher: Schema.optionalKey; }>; readonly rawQuote: Schema.Unknown; readonly backend: Schema.Literal<"v10">; }>]>; type QuoteBackendContext = typeof QuoteBackendContextSchema.Type; type QuoteBackendContextUpdater = (context: QuoteBackendContext, selections: ReadonlyArray) => QuoteBackendContext; type QuoteInternalState = { readonly input: QuoteQuoteInput; readonly currency: string; readonly backendContext?: QuoteBackendContext; readonly updateBackendContext?: QuoteBackendContextUpdater; readonly selections: ReadonlyArray; readonly additionalServices: ReadonlyArray; readonly cancellationPolicies: ReadonlyArray; readonly cancellationPolicyQuoteVariants: ReadonlyArray; readonly cancellationPolicySelection?: CancellationPolicySelection; readonly multiRateContext?: MultiRateContext; }; //#endregion //#region src/domain/insurance/booking.d.ts export declare const InsuranceBookingOutputSchema: Schema.Union; }>, Schema.Struct<{ readonly kind: Schema.Literal<"not_required">; }>, Schema.Struct<{ readonly kind: Schema.Literal<"booked">; readonly policyNumber: Schema.String; readonly documents: Schema.optionalKey>>; }>]>; type InsuranceBookingOutput = typeof InsuranceBookingOutputSchema.Type; //#endregion //#region src/domain/insurance/customer-information.d.ts export declare const InsuranceCustomerInformationInputSchema: Schema.Struct<{ readonly destinationCountryCode: Schema.String; readonly address: Schema.Struct<{ readonly street: Schema.String; readonly housenumber: Schema.optionalKey; readonly postalcode: Schema.String; readonly city: Schema.String; readonly countryCode: Schema.String; }>; readonly email: Schema.String; readonly mobile: Schema.String; }>; type InsuranceCustomerInformationInput = typeof InsuranceCustomerInformationInputSchema.Type; //#endregion //#region src/domain/insurance/guest-quote-insurance.d.ts export declare const GuestQuoteInsuranceSchema: Schema.Struct<{ readonly options: Schema.$Array; readonly label: Schema.String; readonly description: Schema.optionalKey; }>, Schema.Struct<{ readonly kind: Schema.Literal<"insurance">; readonly id: Schema.String; readonly formattedPrice: Schema.String; readonly label: Schema.String; readonly requiredInformation: Schema.Union; }>, Schema.Struct<{ readonly kind: Schema.Literal<"travelers">; }>]>; readonly description: Schema.optionalKey; readonly logoUrl: Schema.optionalKey; readonly features: Schema.optionalKey>; readonly resources: Schema.optionalKey>>; }>]>>; readonly selected: Schema.Union; }>, Schema.Struct<{ readonly kind: Schema.Literal<"insurance">; readonly id: Schema.String; readonly travelers: Schema.optionalKey; readonly birthday: Schema.optionalKey; }>>>; }>]>; readonly preContract: Schema.Union; }>, Schema.Struct<{ readonly kind: Schema.Literal<"not_required">; }>, Schema.Struct<{ readonly kind: Schema.Literal<"created">; readonly id: Schema.String; readonly documents: Schema.optionalKey>>; }>]>; readonly paymentOptions: Schema.$Array; readonly label: Schema.String; readonly description: Schema.optionalKey; }>, Schema.Struct<{ readonly kind: Schema.Literal<"external_url">; readonly label: Schema.String; readonly url: Schema.String; readonly description: Schema.optionalKey; }>]>>; readonly destinationCountryCode: Schema.optionalKey; readonly customerInformation: Schema.optionalKey; readonly postalcode: Schema.String; readonly city: Schema.String; readonly countryCode: Schema.String; }>; readonly email: Schema.String; readonly mobile: Schema.String; }>>; readonly paymentInformation: Schema.optionalKey; readonly iban: Schema.String; readonly bic: Schema.optionalKey; }>, Schema.Struct<{ readonly kind: Schema.Literal<"external_url">; }>]>>; }>; type GuestQuoteInsurance = typeof GuestQuoteInsuranceSchema.Type; //#endregion //#region src/domain/insurance/option.d.ts export declare const SelectableInsuranceOptionOutputSchema: Schema.Union; readonly label: Schema.String; readonly description: Schema.optionalKey; }>, Schema.Struct<{ readonly kind: Schema.Literal<"insurance">; readonly id: Schema.String; readonly formattedPrice: Schema.String; readonly label: Schema.String; readonly requiredInformation: Schema.Union; }>, Schema.Struct<{ readonly kind: Schema.Literal<"travelers">; }>]>; readonly description: Schema.optionalKey; readonly logoUrl: Schema.optionalKey; readonly features: Schema.optionalKey>; readonly resources: Schema.optionalKey>>; }>]>; type SelectableInsuranceOptionOutput = typeof SelectableInsuranceOptionOutputSchema.Type; //#endregion //#region src/domain/insurance/payment.d.ts export declare const InsurancePaymentOptionOutputSchema: Schema.Union; readonly label: Schema.String; readonly description: Schema.optionalKey; }>, Schema.Struct<{ readonly kind: Schema.Literal<"external_url">; readonly label: Schema.String; readonly url: Schema.String; readonly description: Schema.optionalKey; }>]>; type InsurancePaymentOptionOutput = typeof InsurancePaymentOptionOutputSchema.Type; export declare const InsurancePaymentInformationInputSchema: Schema.Union; readonly iban: Schema.String; readonly bic: Schema.optionalKey; }>, Schema.Struct<{ readonly kind: Schema.Literal<"external_url">; }>]>; type InsurancePaymentInformationInput = typeof InsurancePaymentInformationInputSchema.Type; //#endregion //#region src/domain/insurance/pre-contract.d.ts export declare const InsurancePreContractOutputSchema: Schema.Union; }>, Schema.Struct<{ readonly kind: Schema.Literal<"not_required">; }>, Schema.Struct<{ readonly kind: Schema.Literal<"created">; readonly id: Schema.String; readonly documents: Schema.optionalKey>>; }>]>; type InsurancePreContractOutput = typeof InsurancePreContractOutputSchema.Type; //#endregion //#region src/domain/insurance/selection.d.ts export declare const SelectedInsuranceInformationInputSchema: Schema.Union; }>, Schema.Struct<{ readonly kind: Schema.Literal<"insurance">; readonly id: Schema.String; readonly travelers: Schema.optionalKey; readonly birthday: Schema.optionalKey; }>>>; }>]>; type SelectedInsuranceInformationInput = typeof SelectedInsuranceInformationInputSchema.Type; //#endregion //#region src/domain/quote/operations/quote/output.d.ts export declare const QuoteQuoteOutputSchema: Schema.Union; readonly quote: typeof GuestQuote; }>, Schema.Struct<{ readonly status: Schema.Literal<"unavailable">; readonly code: Schema.Literals; readonly reason: Schema.String; }>]>; type QuoteQuoteOutput = GuestQuoteResult; //#endregion //#region src/domain/quote/model/internal-state.d.ts declare const GuestQuoteInternalState: unique symbol; export declare const getGuestQuoteBackendContext: (quote: GuestQuote) => QuoteBackendContext | undefined; export declare const getGuestQuoteInput: (quote: GuestQuote) => QuoteQuoteInput; //#endregion //#region src/domain/quote/model/guest-quote.d.ts type GuestQuoteSelectionResult = { readonly ok: true; readonly quote: GuestQuote; } | { readonly ok: false; readonly error: GuestQuoteSelectionError; }; export declare const GuestQuoteUnavailableCodeSchema: Schema.Literals; type GuestQuoteUnavailableCode = typeof GuestQuoteUnavailableCodeSchema.Type; type GuestQuoteResult = { readonly status: "available"; readonly quote: GuestQuote; } | { readonly status: "unavailable"; readonly code: GuestQuoteUnavailableCode; readonly reason: string; }; declare const GuestQuoteVoucherSchema: Schema.Struct<{ readonly code: Schema.String; readonly status: Schema.Literals; readonly message: Schema.optionalKey; }>; type GuestQuoteVoucher = typeof GuestQuoteVoucherSchema.Type; type GuestQuoteProps = { readonly input: QuoteQuoteInput; readonly currency: string; readonly baseTotal: number; readonly additionalServices: ReadonlyArray; readonly bookingCardInformation: InternalGuestQuoteBookingCard; readonly selections?: ReadonlyArray; readonly backendContext?: QuoteBackendContext; readonly updateBackendContext?: QuoteBackendContextUpdater; readonly insurance?: GuestQuoteInsurance; readonly voucher?: GuestQuoteVoucher; readonly cancellationPolicies?: ReadonlyArray; readonly cancellationPolicySelection?: CancellationPolicySelection; readonly cancellationPolicyQuoteVariants?: ReadonlyArray; readonly multiRateContext?: MultiRateContext; }; export declare const addGuestQuoteAdditionalServiceSelection: ({ quote, id }: { readonly quote: GuestQuote; readonly id: string; }) => GuestQuoteSelectionResult; export declare const removeGuestQuoteAdditionalServiceSelection: ({ quote, id }: { readonly quote: GuestQuote; readonly id: string; }) => GuestQuoteSelectionResult; export declare const clearGuestQuoteAdditionalServiceSelections: ({ quote }: { readonly quote: GuestQuote; }) => GuestQuoteSelectionResult; export declare const selectGuestQuoteCancellationPolicySelection: ({ quote, id }: { readonly quote: GuestQuote; readonly id: string; }) => GuestQuoteSelectionResult; export declare const withGuestQuoteInsurance: ({ quote, insurance }: { readonly quote: GuestQuote; readonly insurance: GuestQuoteInsurance; }) => GuestQuote; declare const GuestQuote_base: Schema.Class>>; readonly totalBeforeModifiers: Schema.optionalKey; }>; readonly subItems: Schema.optionalKey>>; readonly totalBeforeModifiers: Schema.optionalKey; }>>>; }>>; }>>; readonly total: Schema.String; readonly totalBeforeModifiers: Schema.optionalKey; }>; readonly additionalServices: Schema.$Array; readonly unavailableReason: Schema.optionalKey; readonly proposedQuantity: Schema.optionalKey; readonly maxPerBooking: Schema.optionalKey; readonly description: Schema.optionalKey; readonly images: Schema.optionalKey>>; }>>; readonly voucher: Schema.optionalKey; readonly message: Schema.optionalKey; }>>; readonly cancellationPolicies: Schema.optionalKey; readonly selected: Schema.Boolean; readonly available: Schema.optionalKey; readonly unavailableReason: Schema.optionalKey; readonly rules: Schema.optionalKey>>; readonly markUpPercentage: Schema.optionalKey; readonly processingFee: Schema.optionalKey; }>>>; readonly insurance: Schema.optionalKey; readonly label: Schema.String; readonly description: Schema.optionalKey; }>, Schema.Struct<{ readonly kind: Schema.Literal<"insurance">; readonly id: Schema.String; readonly formattedPrice: Schema.String; readonly label: Schema.String; readonly requiredInformation: Schema.Union; }>, Schema.Struct<{ readonly kind: Schema.Literal<"travelers">; }>]>; readonly description: Schema.optionalKey; readonly logoUrl: Schema.optionalKey; readonly features: Schema.optionalKey>; readonly resources: Schema.optionalKey>>; }>]>>; readonly selected: Schema.Union; }>, Schema.Struct<{ readonly kind: Schema.Literal<"insurance">; readonly id: Schema.String; readonly travelers: Schema.optionalKey; readonly birthday: Schema.optionalKey; }>>>; }>]>; readonly preContract: Schema.Union; }>, Schema.Struct<{ readonly kind: Schema.Literal<"not_required">; }>, Schema.Struct<{ readonly kind: Schema.Literal<"created">; readonly id: Schema.String; readonly documents: Schema.optionalKey>>; }>]>; readonly paymentOptions: Schema.$Array; readonly label: Schema.String; readonly description: Schema.optionalKey; }>, Schema.Struct<{ readonly kind: Schema.Literal<"external_url">; readonly label: Schema.String; readonly url: Schema.String; readonly description: Schema.optionalKey; }>]>>; readonly destinationCountryCode: Schema.optionalKey; readonly customerInformation: Schema.optionalKey; readonly postalcode: Schema.String; readonly city: Schema.String; readonly countryCode: Schema.String; }>; readonly email: Schema.String; readonly mobile: Schema.String; }>>; readonly paymentInformation: Schema.optionalKey; readonly iban: Schema.String; readonly bic: Schema.optionalKey; }>, Schema.Struct<{ readonly kind: Schema.Literal<"external_url">; }>]>>; }>>; }>, {}>; export declare class GuestQuote extends GuestQuote_base { #private; readonly [GuestQuoteInternalState]: QuoteInternalState; constructor(props: GuestQuoteProps); private rebuild; private addAdditionalServiceEffect; private removeAdditionalServiceEffect; private clearAdditionalServicesSelection; private selectCancellationPolicyEffect; private withAdditionalServiceSelections; private validateAdditionalServiceSelections; private withValidatedAdditionalServiceSelections; } export declare const GuestQuoteSchema: typeof GuestQuote; //#endregion //#region src/domain/quote/operations/add-additional-service/input.d.ts export declare const QuoteAddAdditionalServiceInputSchema: Schema.Struct<{ readonly quote: typeof GuestQuote; readonly id: Schema.String; }>; type QuoteAddAdditionalServiceInput = typeof QuoteAddAdditionalServiceInputSchema.Type; //#endregion //#region src/domain/quote/operations/add-additional-service/output.d.ts export declare const QuoteAddAdditionalServiceOutputSchema: import("effect/Schema").Union; readonly quote: typeof GuestQuote; }>, import("effect/Schema").Struct<{ readonly ok: import("effect/Schema").Literal; readonly error: import("effect/Schema").Union; }>]>; type QuoteAddAdditionalServiceOutput = GuestQuoteSelectionResult; //#endregion //#region src/domain/quote/operations/book-insurance/input.d.ts export declare const QuoteBookInsuranceInputSchema: Schema.Struct<{ readonly quote: typeof GuestQuote; readonly booking: typeof BookingBookOutput; }>; type QuoteBookInsuranceInput = typeof QuoteBookInsuranceInputSchema.Type; //#endregion //#region src/domain/quote/operations/book-insurance/output.d.ts export declare const QuoteBookInsuranceOutputSchema: import("effect/Schema").Union; }>, import("effect/Schema").Struct<{ readonly kind: import("effect/Schema").Literal<"not_required">; }>, import("effect/Schema").Struct<{ readonly kind: import("effect/Schema").Literal<"booked">; readonly policyNumber: import("effect/Schema").String; readonly documents: import("effect/Schema").optionalKey>>; }>]>; type QuoteBookInsuranceOutput = typeof QuoteBookInsuranceOutputSchema.Type; //#endregion //#region src/domain/quote/operations/clear-additional-services/input.d.ts export declare const QuoteClearAdditionalServicesInputSchema: Schema.Struct<{ readonly quote: typeof GuestQuote; }>; type QuoteClearAdditionalServicesInput = typeof QuoteClearAdditionalServicesInputSchema.Type; //#endregion //#region src/domain/quote/operations/clear-additional-services/output.d.ts export declare const QuoteClearAdditionalServicesOutputSchema: import("effect/Schema").Union; readonly quote: typeof GuestQuote; }>, import("effect/Schema").Struct<{ readonly ok: import("effect/Schema").Literal; readonly error: import("effect/Schema").Union; }>]>; type QuoteClearAdditionalServicesOutput = GuestQuoteSelectionResult; //#endregion //#region src/domain/quote/operations/create-insurance-pre-contract/input.d.ts export declare const QuoteCreateInsurancePreContractInputSchema: Schema.Struct<{ readonly quote: typeof GuestQuote; readonly customerInformation: Schema.Struct<{ readonly destinationCountryCode: Schema.String; readonly address: Schema.Struct<{ readonly street: Schema.String; readonly housenumber: Schema.optionalKey; readonly postalcode: Schema.String; readonly city: Schema.String; readonly countryCode: Schema.String; }>; readonly email: Schema.String; readonly mobile: Schema.String; }>; }>; type QuoteCreateInsurancePreContractInput = typeof QuoteCreateInsurancePreContractInputSchema.Type; //#endregion //#region src/domain/quote/operations/create-insurance-pre-contract/output.d.ts export declare const QuoteCreateInsurancePreContractOutputSchema: typeof GuestQuote; type QuoteCreateInsurancePreContractOutput = typeof QuoteCreateInsurancePreContractOutputSchema.Type; //#endregion //#region src/domain/quote/operations/remove-additional-service/input.d.ts export declare const QuoteRemoveAdditionalServiceInputSchema: Schema.Struct<{ readonly quote: typeof GuestQuote; readonly id: Schema.String; }>; type QuoteRemoveAdditionalServiceInput = typeof QuoteRemoveAdditionalServiceInputSchema.Type; //#endregion //#region src/domain/quote/operations/remove-additional-service/output.d.ts export declare const QuoteRemoveAdditionalServiceOutputSchema: import("effect/Schema").Union; readonly quote: typeof GuestQuote; }>, import("effect/Schema").Struct<{ readonly ok: import("effect/Schema").Literal; readonly error: import("effect/Schema").Union; }>]>; type QuoteRemoveAdditionalServiceOutput = GuestQuoteSelectionResult; //#endregion //#region src/domain/quote/operations/select-cancellation-policy/input.d.ts export declare const QuoteSelectCancellationPolicyInputSchema: Schema.Struct<{ readonly quote: typeof GuestQuote; readonly id: Schema.String; }>; type QuoteSelectCancellationPolicyInput = typeof QuoteSelectCancellationPolicyInputSchema.Type; //#endregion //#region src/domain/quote/operations/select-cancellation-policy/output.d.ts export declare const QuoteSelectCancellationPolicyOutputSchema: import("effect/Schema").Union; readonly quote: typeof GuestQuote; }>, import("effect/Schema").Struct<{ readonly ok: import("effect/Schema").Literal; readonly error: import("effect/Schema").Union; }>]>; type QuoteSelectCancellationPolicyOutput = GuestQuoteSelectionResult; //#endregion //#region src/domain/quote/operations/select-insurance/input.d.ts export declare const QuoteSelectInsuranceInputSchema: Schema.Struct<{ readonly quote: typeof GuestQuote; readonly selection: Schema.Union; }>, Schema.Struct<{ readonly kind: Schema.Literal<"insurance">; readonly id: Schema.String; readonly travelers: Schema.optionalKey; readonly birthday: Schema.optionalKey; }>>>; }>]>; }>; type QuoteSelectInsuranceInput = typeof QuoteSelectInsuranceInputSchema.Type; //#endregion //#region src/domain/quote/operations/select-insurance/output.d.ts export declare const QuoteSelectInsuranceOutputSchema: typeof GuestQuote; type QuoteSelectInsuranceOutput = typeof QuoteSelectInsuranceOutputSchema.Type; //#endregion //#region src/domain/quote/operations/select-insurance-payment/input.d.ts export declare const QuoteSelectInsurancePaymentInputSchema: Schema.Struct<{ readonly quote: typeof GuestQuote; readonly paymentInformation: Schema.Union; readonly iban: Schema.String; readonly bic: Schema.optionalKey; }>, Schema.Struct<{ readonly kind: Schema.Literal<"external_url">; }>]>; }>; type QuoteSelectInsurancePaymentInput = typeof QuoteSelectInsurancePaymentInputSchema.Type; //#endregion //#region src/domain/quote/operations/select-insurance-payment/output.d.ts export declare const QuoteSelectInsurancePaymentOutputSchema: typeof GuestQuote; type QuoteSelectInsurancePaymentOutput = typeof QuoteSelectInsurancePaymentOutputSchema.Type; //#endregion //#region src/domain/quote/model/selected-services-summary.d.ts type GuestQuoteSelectedServicesSummary = { /** Minor units, like every other amount on the quote. */ readonly amount: number; readonly currency: string; readonly formatted: string; /** Quantity per service id, for callers that render their own selection controls. */ readonly quantities: Readonly>; }; /** * What the selected optional services cost on their own. `bookingCardInformation.total` * is the whole stay — rent, taxes and mandatory lines included — so anything that * charges services only must use this instead, or it shows a number nobody pays. */ export declare const getGuestQuoteSelectedServicesSummary: (quote: GuestQuote) => GuestQuoteSelectedServicesSummary; //#endregion //#region src/domain/quote/model/selection-result.d.ts export declare const GuestQuoteSelectionErrorSchema: Schema.Union; export declare const GuestQuoteSelectionResultSchema: Schema.Union; readonly quote: typeof GuestQuote; }>, Schema.Struct<{ readonly ok: Schema.Literal; readonly error: Schema.Union; }>]>; //#endregion //#region src/domain/booking/block-period.d.ts /** * An owner block is not a commercial booking: v10 models it as a booking whose * status is FREEZE, with the reason carried in `statusReason`. The transport * prefixes every reason with `FREEZE_`; that prefix is added when the input is * translated, so callers stay free of the wire format. */ export declare const BookingBlockReasonSchema: Schema.Literals; type BookingBlockReason = typeof BookingBlockReasonSchema.Type; /** * The quote carries rental, period, occupancy and the priced services, exactly * as it does for a guest booking — the owner picks services through the same * machinery. Only the money differs: an owner is not charged for the stay, so * the block keeps the services that were selected and drops everything else. */ export declare const BookingBlockPeriodInputSchema: Schema.Struct<{ readonly quote: Schema.instanceOf; readonly reason: Schema.Literals; readonly customerId: Schema.optionalKey; readonly note: Schema.optionalKey; }>; type BookingBlockPeriodInput = typeof BookingBlockPeriodInputSchema.Type; export declare const BookingBlockPeriodOutputSchema: Schema.Struct<{ readonly id: Schema.String; readonly nr: Schema.NullOr; }>; type BookingBlockPeriodOutput = typeof BookingBlockPeriodOutputSchema.Type; //#endregion //#region src/domain/booking/book-input.d.ts declare const BookingAddressSchema: Schema.Struct<{ readonly street: Schema.String; readonly housenumber: Schema.optionalKey; readonly postalcode: Schema.String; readonly city: Schema.String; readonly countryCode: Schema.String; }>; declare const BookingContactDetailSchema: Schema.Union, Schema.Struct<{ readonly email: Schema.String; }>, Schema.Struct<{ readonly phone: Schema.String; }>]>; declare const BookingContactSchema: Schema.Struct<{ readonly forename: Schema.String; readonly surname: Schema.String; readonly title: Schema.optionalKey; readonly birthdate: Schema.optionalKey; readonly address: Schema.Struct<{ readonly street: Schema.String; readonly housenumber: Schema.optionalKey; readonly postalcode: Schema.String; readonly city: Schema.String; readonly countryCode: Schema.String; }>; readonly contactDetails: Schema.Union, Schema.Struct<{ readonly email: Schema.String; }>, Schema.Struct<{ readonly phone: Schema.String; }>]>; readonly note: Schema.optionalKey; }>; export declare const BookingBookInputSchema: Schema.Struct<{ readonly quote: typeof GuestQuote; readonly contact: Schema.Struct<{ readonly forename: Schema.String; readonly surname: Schema.String; readonly title: Schema.optionalKey; readonly birthdate: Schema.optionalKey; readonly address: Schema.Struct<{ readonly street: Schema.String; readonly housenumber: Schema.optionalKey; readonly postalcode: Schema.String; readonly city: Schema.String; readonly countryCode: Schema.String; }>; readonly contactDetails: Schema.Union, Schema.Struct<{ readonly email: Schema.String; }>, Schema.Struct<{ readonly phone: Schema.String; }>]>; readonly note: Schema.optionalKey; }>; readonly relativeRedirectUrl: Schema.String; readonly kind: Schema.optionalKey>; }>; type BookingBookInput = typeof BookingBookInputSchema.Type; type BookingAddress = typeof BookingAddressSchema.Type; type BookingContact = typeof BookingContactSchema.Type; type BookingContactDetail = typeof BookingContactDetailSchema.Type; //#endregion //#region src/domain/booking/book-output.d.ts export declare const BookingPaymentScheduleLineSchema: Schema.Struct<{ readonly label: Schema.String; readonly amount: Schema.String; }>; export declare const BookingPaymentScheduleKindSchema: Schema.Literals; export declare const BookingPaymentScheduleItemSchema: Schema.Struct<{ readonly kind: Schema.Literals; readonly label: Schema.String; readonly amount: Schema.String; readonly dueOn: Schema.optionalKey; readonly paymentAt: Schema.optionalKey; readonly lines: Schema.optionalKey>>; readonly paymentOptions: Schema.optionalKey; readonly iban: Schema.String; readonly swiftOrBic: Schema.optionalKey; readonly institution: Schema.optionalKey; readonly kind: Schema.Literal<"bank_transfer">; readonly label: Schema.String; readonly remittanceText: Schema.optionalKey; }>, Schema.Struct<{ readonly kind: Schema.Literal<"redirect">; readonly provider: Schema.Literal<"adyen">; readonly label: Schema.String; readonly url: Schema.String; }>, Schema.Struct<{ readonly kind: Schema.Literal<"form_post">; readonly provider: Schema.Literal<"paypal">; readonly label: Schema.String; readonly action: Schema.String; readonly method: Schema.Literal<"POST">; readonly fields: Schema.$Record; readonly fallbackUrl: Schema.String; }>, Schema.Struct<{ readonly kind: Schema.Literal<"stripe_checkout">; readonly provider: Schema.Literal<"stripe">; readonly label: Schema.String; readonly sessionId: Schema.optionalKey; readonly accountId: Schema.optionalKey; readonly url: Schema.optionalKey; }>]>>>; }>; export declare const BookingPaymentAlternativeSchema: Schema.Struct<{ readonly kind: Schema.Literal<"full_amount">; readonly label: Schema.String; readonly amount: Schema.String; readonly dueOn: Schema.optionalKey; readonly lines: Schema.optionalKey>>; readonly paymentOptions: Schema.$Array; readonly iban: Schema.String; readonly swiftOrBic: Schema.optionalKey; readonly institution: Schema.optionalKey; readonly kind: Schema.Literal<"bank_transfer">; readonly label: Schema.String; readonly remittanceText: Schema.optionalKey; }>, Schema.Struct<{ readonly kind: Schema.Literal<"redirect">; readonly provider: Schema.Literal<"adyen">; readonly label: Schema.String; readonly url: Schema.String; }>, Schema.Struct<{ readonly kind: Schema.Literal<"form_post">; readonly provider: Schema.Literal<"paypal">; readonly label: Schema.String; readonly action: Schema.String; readonly method: Schema.Literal<"POST">; readonly fields: Schema.$Record; readonly fallbackUrl: Schema.String; }>, Schema.Struct<{ readonly kind: Schema.Literal<"stripe_checkout">; readonly provider: Schema.Literal<"stripe">; readonly label: Schema.String; readonly sessionId: Schema.optionalKey; readonly accountId: Schema.optionalKey; readonly url: Schema.optionalKey; }>]>>; }>; export declare const BookingPaymentSchema: Schema.Struct<{ readonly schedule: Schema.$Array; readonly label: Schema.String; readonly amount: Schema.String; readonly dueOn: Schema.optionalKey; readonly paymentAt: Schema.optionalKey; readonly lines: Schema.optionalKey>>; readonly paymentOptions: Schema.optionalKey; readonly iban: Schema.String; readonly swiftOrBic: Schema.optionalKey; readonly institution: Schema.optionalKey; readonly kind: Schema.Literal<"bank_transfer">; readonly label: Schema.String; readonly remittanceText: Schema.optionalKey; }>, Schema.Struct<{ readonly kind: Schema.Literal<"redirect">; readonly provider: Schema.Literal<"adyen">; readonly label: Schema.String; readonly url: Schema.String; }>, Schema.Struct<{ readonly kind: Schema.Literal<"form_post">; readonly provider: Schema.Literal<"paypal">; readonly label: Schema.String; readonly action: Schema.String; readonly method: Schema.Literal<"POST">; readonly fields: Schema.$Record; readonly fallbackUrl: Schema.String; }>, Schema.Struct<{ readonly kind: Schema.Literal<"stripe_checkout">; readonly provider: Schema.Literal<"stripe">; readonly label: Schema.String; readonly sessionId: Schema.optionalKey; readonly accountId: Schema.optionalKey; readonly url: Schema.optionalKey; }>]>>>; }>>; readonly alternatives: Schema.$Array; readonly label: Schema.String; readonly amount: Schema.String; readonly dueOn: Schema.optionalKey; readonly lines: Schema.optionalKey>>; readonly paymentOptions: Schema.$Array; readonly iban: Schema.String; readonly swiftOrBic: Schema.optionalKey; readonly institution: Schema.optionalKey; readonly kind: Schema.Literal<"bank_transfer">; readonly label: Schema.String; readonly remittanceText: Schema.optionalKey; }>, Schema.Struct<{ readonly kind: Schema.Literal<"redirect">; readonly provider: Schema.Literal<"adyen">; readonly label: Schema.String; readonly url: Schema.String; }>, Schema.Struct<{ readonly kind: Schema.Literal<"form_post">; readonly provider: Schema.Literal<"paypal">; readonly label: Schema.String; readonly action: Schema.String; readonly method: Schema.Literal<"POST">; readonly fields: Schema.$Record; readonly fallbackUrl: Schema.String; }>, Schema.Struct<{ readonly kind: Schema.Literal<"stripe_checkout">; readonly provider: Schema.Literal<"stripe">; readonly label: Schema.String; readonly sessionId: Schema.optionalKey; readonly accountId: Schema.optionalKey; readonly url: Schema.optionalKey; }>]>>; }>>; }>; type BookingPaymentScheduleLine = typeof BookingPaymentScheduleLineSchema.Type; type BookingPaymentScheduleKind = typeof BookingPaymentScheduleKindSchema.Type; type BookingPaymentScheduleItem = typeof BookingPaymentScheduleItemSchema.Type; type BookingPaymentAlternative = typeof BookingPaymentAlternativeSchema.Type; type BookingPayment = typeof BookingPaymentSchema.Type; export declare const BookingBookOutputInternalState: unique symbol; export type BookingBookOutputInternalState = { readonly guestToken?: string; }; type BookingBookOutputProps = { readonly bookingNumber: string; readonly payment: BookingPayment; readonly insurancePaymentOptions?: ReadonlyArray; readonly guestToken?: string; }; declare const BookingBookOutput_base: Schema.Class; readonly label: Schema.String; readonly amount: Schema.String; readonly dueOn: Schema.optionalKey; readonly paymentAt: Schema.optionalKey; readonly lines: Schema.optionalKey>>; readonly paymentOptions: Schema.optionalKey; readonly iban: Schema.String; readonly swiftOrBic: Schema.optionalKey; readonly institution: Schema.optionalKey; readonly kind: Schema.Literal<"bank_transfer">; readonly label: Schema.String; readonly remittanceText: Schema.optionalKey; }>, Schema.Struct<{ readonly kind: Schema.Literal<"redirect">; readonly provider: Schema.Literal<"adyen">; readonly label: Schema.String; readonly url: Schema.String; }>, Schema.Struct<{ readonly kind: Schema.Literal<"form_post">; readonly provider: Schema.Literal<"paypal">; readonly label: Schema.String; readonly action: Schema.String; readonly method: Schema.Literal<"POST">; readonly fields: Schema.$Record; readonly fallbackUrl: Schema.String; }>, Schema.Struct<{ readonly kind: Schema.Literal<"stripe_checkout">; readonly provider: Schema.Literal<"stripe">; readonly label: Schema.String; readonly sessionId: Schema.optionalKey; readonly accountId: Schema.optionalKey; readonly url: Schema.optionalKey; }>]>>>; }>>; readonly alternatives: Schema.$Array; readonly label: Schema.String; readonly amount: Schema.String; readonly dueOn: Schema.optionalKey; readonly lines: Schema.optionalKey>>; readonly paymentOptions: Schema.$Array; readonly iban: Schema.String; readonly swiftOrBic: Schema.optionalKey; readonly institution: Schema.optionalKey; readonly kind: Schema.Literal<"bank_transfer">; readonly label: Schema.String; readonly remittanceText: Schema.optionalKey; }>, Schema.Struct<{ readonly kind: Schema.Literal<"redirect">; readonly provider: Schema.Literal<"adyen">; readonly label: Schema.String; readonly url: Schema.String; }>, Schema.Struct<{ readonly kind: Schema.Literal<"form_post">; readonly provider: Schema.Literal<"paypal">; readonly label: Schema.String; readonly action: Schema.String; readonly method: Schema.Literal<"POST">; readonly fields: Schema.$Record; readonly fallbackUrl: Schema.String; }>, Schema.Struct<{ readonly kind: Schema.Literal<"stripe_checkout">; readonly provider: Schema.Literal<"stripe">; readonly label: Schema.String; readonly sessionId: Schema.optionalKey; readonly accountId: Schema.optionalKey; readonly url: Schema.optionalKey; }>]>>; }>>; }>; readonly insurancePaymentOptions: Schema.optionalKey; readonly label: Schema.String; readonly description: Schema.optionalKey; }>, Schema.Struct<{ readonly kind: Schema.Literal<"external_url">; readonly label: Schema.String; readonly url: Schema.String; readonly description: Schema.optionalKey; }>]>>>; }>, {}>; export declare class BookingBookOutput extends BookingBookOutput_base { readonly [BookingBookOutputInternalState]: BookingBookOutputInternalState; constructor(props: BookingBookOutputProps); } export declare const BookingBookOutputSchema: typeof BookingBookOutput; export declare const getBookingBookGuestToken: (booking: BookingBookOutput) => string | undefined; //#endregion //#region src/domain/booking/payment-option.d.ts /** * Bank account a guest transfers money to, as configured in the PMS payment settings. * `holder` is absent when the PMS has none; it is never substituted with another name. */ export declare const BookingBankTransferDetailsSchema: Schema.Struct<{ readonly holder: Schema.optionalKey; readonly iban: Schema.String; readonly swiftOrBic: Schema.optionalKey; readonly institution: Schema.optionalKey; }>; export declare const BookingBankTransferPaymentOptionSchema: Schema.Struct<{ readonly holder: Schema.optionalKey; readonly iban: Schema.String; readonly swiftOrBic: Schema.optionalKey; readonly institution: Schema.optionalKey; readonly kind: Schema.Literal<"bank_transfer">; readonly label: Schema.String; readonly remittanceText: Schema.optionalKey; }>; export declare const BookingRedirectPaymentOptionSchema: Schema.Struct<{ readonly kind: Schema.Literal<"redirect">; readonly provider: Schema.Literal<"adyen">; readonly label: Schema.String; readonly url: Schema.String; }>; export declare const BookingFormPostPaymentOptionSchema: Schema.Struct<{ readonly kind: Schema.Literal<"form_post">; readonly provider: Schema.Literal<"paypal">; readonly label: Schema.String; readonly action: Schema.String; readonly method: Schema.Literal<"POST">; readonly fields: Schema.$Record; readonly fallbackUrl: Schema.String; }>; export declare const BookingStripeCheckoutPaymentOptionSchema: Schema.Struct<{ readonly kind: Schema.Literal<"stripe_checkout">; readonly provider: Schema.Literal<"stripe">; readonly label: Schema.String; readonly sessionId: Schema.optionalKey; readonly accountId: Schema.optionalKey; readonly url: Schema.optionalKey; }>; export declare const BookingSubmittablePaymentOptionSchema: Schema.Union; readonly provider: Schema.Literal<"adyen">; readonly label: Schema.String; readonly url: Schema.String; }>, Schema.Struct<{ readonly kind: Schema.Literal<"form_post">; readonly provider: Schema.Literal<"paypal">; readonly label: Schema.String; readonly action: Schema.String; readonly method: Schema.Literal<"POST">; readonly fields: Schema.$Record; readonly fallbackUrl: Schema.String; }>, Schema.Struct<{ readonly kind: Schema.Literal<"stripe_checkout">; readonly provider: Schema.Literal<"stripe">; readonly label: Schema.String; readonly sessionId: Schema.optionalKey; readonly accountId: Schema.optionalKey; readonly url: Schema.optionalKey; }>]>; export declare const BookingPaymentOptionSchema: Schema.Union; readonly iban: Schema.String; readonly swiftOrBic: Schema.optionalKey; readonly institution: Schema.optionalKey; readonly kind: Schema.Literal<"bank_transfer">; readonly label: Schema.String; readonly remittanceText: Schema.optionalKey; }>, Schema.Struct<{ readonly kind: Schema.Literal<"redirect">; readonly provider: Schema.Literal<"adyen">; readonly label: Schema.String; readonly url: Schema.String; }>, Schema.Struct<{ readonly kind: Schema.Literal<"form_post">; readonly provider: Schema.Literal<"paypal">; readonly label: Schema.String; readonly action: Schema.String; readonly method: Schema.Literal<"POST">; readonly fields: Schema.$Record; readonly fallbackUrl: Schema.String; }>, Schema.Struct<{ readonly kind: Schema.Literal<"stripe_checkout">; readonly provider: Schema.Literal<"stripe">; readonly label: Schema.String; readonly sessionId: Schema.optionalKey; readonly accountId: Schema.optionalKey; readonly url: Schema.optionalKey; }>]>; type BookingBankTransferDetails = typeof BookingBankTransferDetailsSchema.Type; type BookingPaymentOption = typeof BookingPaymentOptionSchema.Type; type SubmittableBookingPaymentOption = typeof BookingSubmittablePaymentOptionSchema.Type; //#endregion //#region src/domain/booking/confirm-booking-input.d.ts export declare const BookingConfirmBookingInputSchema: Schema.Struct<{ readonly id: Schema.String; readonly version: Schema.Number; }>; type BookingConfirmBookingInput = typeof BookingConfirmBookingInputSchema.Type; //#endregion //#region src/domain/booking/confirm-booking-output.d.ts export declare const BookingConfirmBookingOutputSchema: Schema.Struct<{ readonly id: Schema.String; readonly nr: Schema.String; readonly status: Schema.String; }>; type BookingConfirmBookingOutput = typeof BookingConfirmBookingOutputSchema.Type; //#endregion //#region src/domain/booking/get-booking-input.d.ts export declare const BookingGetBookingInputSchema: Schema.Struct<{ readonly id: Schema.String; }>; type BookingGetBookingInput = typeof BookingGetBookingInputSchema.Type; //#endregion //#region src/domain/booking/find-by-id-and-rental-ids-input.d.ts export declare const BookingFindByIdAndRentalIdsInputSchema: Schema.Struct<{ readonly bookingId: Schema.String; readonly rentalIds: Schema.$Array; }>; type BookingFindByIdAndRentalIdsInput = typeof BookingFindByIdAndRentalIdsInputSchema.Type; //#endregion //#region src/domain/booking/get-booking-output.d.ts export declare const BookingGetBookingOutputSchema: Schema.Struct<{ readonly id: Schema.String; readonly nr: Schema.String; readonly status: Schema.String; readonly booked: Schema.String; /** Deadline of an option booking; absent for bookings that hold no reservation. */ readonly reservedTill: Schema.optionalKey; readonly version: Schema.Number; readonly voucherCode: Schema.optionalKey>; readonly period: Schema.optionalKey>; readonly rental: Schema.optionalKey>; }>>; readonly customer: Schema.optionalKey>; readonly surname: Schema.optionalKey>; }>>; readonly occupancy: Schema.optionalKey; readonly children: Schema.optionalKey; readonly babies: Schema.optionalKey; readonly pets: Schema.optionalKey; readonly childrenAges: Schema.optionalKey>; }>>; readonly financials: Schema.optionalKey>; readonly currency: Schema.String; readonly paymentSteps: Schema.optionalKey; readonly currency: Schema.String; }>>>; }>>; }>; type BookingGetBookingOutput = typeof BookingGetBookingOutputSchema.Type; //#endregion //#region src/domain/booking/initiate-booking-payment-input.d.ts export declare const BookingInitiateBookingPaymentInputSchema: Schema.Struct<{ readonly bookingId: Schema.String; readonly amount: Schema.Number; readonly currency: Schema.String; readonly redirectUrl: Schema.String; }>; type BookingInitiateBookingPaymentInput = typeof BookingInitiateBookingPaymentInputSchema.Type; //#endregion //#region src/domain/booking/initiate-booking-payment-output.d.ts export declare const BookingInitiateBookingPaymentOutputSchema: Schema.Struct<{ readonly url: Schema.String; }>; type BookingInitiateBookingPaymentOutput = typeof BookingInitiateBookingPaymentOutputSchema.Type; //#endregion //#region src/domain/booking/tax-guest.d.ts export declare const BookingTaxGuestSchema: Schema.Struct<{ readonly id: Schema.String; readonly forename: Schema.NullOr; readonly surname: Schema.NullOr; readonly birthday: Schema.NullOr; readonly version: Schema.Number; readonly guestGroup: Schema.optionalKey>; }>>; }>; type BookingTaxGuest = typeof BookingTaxGuestSchema.Type; export declare const BookingListTaxGuestsInputSchema: Schema.Struct<{ readonly bookingId: Schema.String; readonly limit: Schema.optionalKey; readonly offset: Schema.optionalKey; }>; type BookingListTaxGuestsInput = typeof BookingListTaxGuestsInputSchema.Type; export declare const BookingInsertTaxGuestInputSchema: Schema.Struct<{ readonly bookingId: Schema.String; readonly forename: Schema.String; readonly surname: Schema.String; readonly birthday: Schema.String; readonly guestGroupId: Schema.optionalKey; }>; type BookingInsertTaxGuestInput = typeof BookingInsertTaxGuestInputSchema.Type; export declare const BookingUpdateTaxGuestInputSchema: Schema.Struct<{ readonly id: Schema.String; readonly version: Schema.Number; readonly bookingId: Schema.String; readonly forename: Schema.String; readonly surname: Schema.String; readonly birthday: Schema.String; readonly guestGroupId: Schema.optionalKey>; }>; type BookingUpdateTaxGuestInput = typeof BookingUpdateTaxGuestInputSchema.Type; export declare const BookingDeleteTaxGuestsInputSchema: Schema.Struct<{ readonly ids: Schema.$Array; }>; type BookingDeleteTaxGuestsInput = typeof BookingDeleteTaxGuestsInputSchema.Type; //#endregion //#region src/domain/booking/list-booking-input.d.ts export declare const BookingListBookingInputSchema: Schema.Struct<{ readonly customerId: Schema.String; }>; type BookingListBookingInput = typeof BookingListBookingInputSchema.Type; //#endregion //#region src/domain/booking/list-by-rental-ids-input.d.ts export declare const BookingListByRentalIdsInputSchema: Schema.Struct<{ readonly rentalIds: Schema.$Array; }>; type BookingListByRentalIdsInput = typeof BookingListByRentalIdsInputSchema.Type; //#endregion //#region src/domain/booking/list-by-rental-ids-output.d.ts export declare const BookingListByRentalIdsOutputSchema: Schema.$Array; readonly booked: Schema.String; readonly period: Schema.optionalKey>; readonly reservedTill: Schema.optionalKey; readonly occupancy: Schema.optionalKey; readonly children: Schema.optionalKey; readonly babies: Schema.optionalKey; }>>; }>>; type BookingListByRentalIdsOutput = typeof BookingListByRentalIdsOutputSchema.Type; //#endregion //#region src/domain/booking/list-booking-output.d.ts export declare const BookingListBookingOutputSchema: Schema.Struct<{ readonly id: Schema.String; readonly nr: Schema.String; readonly status: Schema.String; readonly rentalId: Schema.optionalKey; readonly booked: Schema.String; readonly period: Schema.optionalKey>; /** Deadline of an option booking; absent for bookings that hold no reservation. */ readonly reservedTill: Schema.optionalKey; readonly occupancy: Schema.optionalKey; readonly children: Schema.optionalKey; readonly babies: Schema.optionalKey; }>>; }>; type BookingListBookingOutput = typeof BookingListBookingOutputSchema.Type; //#endregion //#region src/domain/booking/modify-booking.d.ts export declare const BookingModificationInternalState: unique symbol; declare const BookingModificationPeriodSchema: Schema.Struct<{ readonly start: Schema.String; readonly end: Schema.String; }>; declare const BookingModificationFinancialsSchema: Schema.Struct<{ readonly total: Schema.String; readonly outstanding: Schema.String; readonly currency: Schema.String; }>; type BookingModificationBackendContext = { readonly backend: "v10"; readonly rawBooking: unknown; readonly rawQuote: unknown; }; export type BookingModificationInternalState = { readonly locale: Locale; readonly currency: string; readonly baseBookingCardInformation: InternalGuestQuoteBookingCard; readonly additionalServices: ReadonlyArray; readonly selections: ReadonlyArray; readonly backendContext: BookingModificationBackendContext; }; type BookingModificationProps = { readonly id: string; readonly nr: string; readonly version: number; readonly customerId: string; readonly rentalId: string; readonly period: { readonly start: LocalDateString; readonly end: LocalDateString; }; readonly status: string; readonly paid: number; readonly baseOutstanding: number; readonly locale: Locale; readonly currency: string; readonly baseBookingCardInformation: InternalGuestQuoteBookingCard; readonly additionalServices: ReadonlyArray; readonly selections: ReadonlyArray; readonly backendContext: BookingModificationBackendContext; }; type BookingModificationSelectionError = { readonly type: "invalid-additional-service-quantity"; readonly quantity: unknown; } | { readonly type: "unknown-additional-service"; readonly id: string; } | { readonly type: "additional-service-limit-exceeded"; readonly id: string; readonly label: string; readonly maxPerBooking: number; readonly requestedQuantity: number; } | { readonly type: "unavailable-additional-service"; readonly id: string; readonly label: string; readonly reason?: string; }; type BookingModificationSelectionResult = { readonly ok: true; readonly modification: BookingModification; } | { readonly ok: false; readonly error: BookingModificationSelectionError; }; export declare const BookingModificationGetInputSchema: Schema.Struct<{ readonly bookingId: Schema.String; readonly locale: Schema.optionalKey>; }>; declare const BookingModification_base: Schema.Class; readonly status: Schema.String; readonly financials: Schema.Struct<{ readonly total: Schema.String; readonly outstanding: Schema.String; readonly currency: Schema.String; }>; readonly bookingCardInformation: Schema.Struct<{ readonly sections: Schema.$Array>>; readonly totalBeforeModifiers: Schema.optionalKey; }>; readonly subItems: Schema.optionalKey>>; readonly totalBeforeModifiers: Schema.optionalKey; }>>>; }>>; }>>; readonly total: Schema.String; readonly totalBeforeModifiers: Schema.optionalKey; }>; readonly additionalServices: Schema.$Array; readonly unavailableReason: Schema.optionalKey; readonly proposedQuantity: Schema.optionalKey; readonly maxPerBooking: Schema.optionalKey; readonly description: Schema.optionalKey; readonly images: Schema.optionalKey>>; }>>; readonly selectedAdditionalServices: Schema.$Array>; }>, {}>; export declare class BookingModification extends BookingModification_base { #private; readonly [BookingModificationInternalState]: BookingModificationInternalState; constructor(props: BookingModificationProps); withAdditionalServiceQuantity({ id, quantity }: { readonly id: string; readonly quantity: unknown; }): BookingModificationSelectionResult; } export declare const BookingModificationSchema: typeof BookingModification; export declare const BookingModificationSetAdditionalServiceQuantityInputSchema: Schema.Struct<{ readonly modification: typeof BookingModification; readonly id: Schema.String; readonly quantity: Schema.Int; }>; export declare const BookingModificationSaveInputSchema: Schema.Struct<{ readonly modification: typeof BookingModification; }>; type BookingModificationGetInput = typeof BookingModificationGetInputSchema.Type; type BookingModificationSaveInput = typeof BookingModificationSaveInputSchema.Type; type BookingModificationSetAdditionalServiceQuantityInput = typeof BookingModificationSetAdditionalServiceQuantityInputSchema.Type; type BookingModificationFinancials = typeof BookingModificationFinancialsSchema.Type; type BookingModificationPeriod = typeof BookingModificationPeriodSchema.Type; export declare const getBookingModificationInternalState: (modification: BookingModification) => BookingModificationInternalState; export declare const getBookingModificationSelectedQuantity: ({ modification, id }: { readonly modification: BookingModification; readonly id: string; }) => number; //#endregion //#region src/domain/contact/submit-input.d.ts export declare const ContactSubmitInputSchema: Schema.Struct<{ readonly locale: Schema.optionalKey>; readonly title: Schema.String; readonly professionalTitle: Schema.String; readonly forename: Schema.String; readonly surname: Schema.String; readonly address: Schema.Struct<{ readonly streetAndHousenumber: Schema.String; readonly postalCode: Schema.String; readonly city: Schema.String; readonly countryCode: Schema.String; }>; readonly email: Schema.String; readonly phone: Schema.String; readonly subject: Schema.String; readonly message: Schema.String; }>; type ContactSubmitInput = typeof ContactSubmitInputSchema.Type; //#endregion //#region src/domain/contact/submit-output.d.ts export declare const ContactSubmitOutputSchema: Schema.Void; type ContactSubmitOutput = typeof ContactSubmitOutputSchema.Type; //#endregion //#region src/domain/contact/list-contact-input.d.ts export declare const ContactListContactInputSchema: Schema.Struct<{ readonly email: Schema.String; }>; type ContactListContactInput = typeof ContactListContactInputSchema.Type; //#endregion //#region src/domain/contact/list-contact-output.d.ts export declare const ContactListContactOutputSchema: Schema.Struct<{ readonly id: Schema.String; readonly forename: Schema.NullOr; readonly surname: Schema.NullOr; }>; type ContactListContactOutput = typeof ContactListContactOutputSchema.Type; //#endregion //#region src/domain/contact/profile.d.ts /** * The PMS address has no house number field — `street` carries street and number together, the way * ContactSubmitInputSchema already models it. `appendix` is the address supplement (c/o, floor). */ export declare const ContactProfileAddressSchema: Schema.Struct<{ readonly streetAndHousenumber: Schema.NullOr; readonly appendix: Schema.NullOr; readonly postalCode: Schema.NullOr; readonly city: Schema.NullOr; readonly province: Schema.NullOr; readonly countryCode: Schema.NullOr; }>; type ContactProfileAddress = typeof ContactProfileAddressSchema.Type; /** * The guest's own contact record. Everything is nullable: a contact created from a booking carries * only what the guest typed at checkout, and staff-maintained contacts vary per tenant. */ export declare const ContactProfileSchema: Schema.Struct<{ readonly id: Schema.String; /** Salutation as the PMS stores it (e.g. "Herr", "Frau") — free text, not an enum. */ readonly title: Schema.NullOr; /** Academic title ("Dr.", "Prof.") — the PMS keeps it apart from the salutation. */ readonly professionalTitle: Schema.NullOr; readonly forename: Schema.NullOr; readonly surname: Schema.NullOr; /** Main EMAIL contact detail; the login identity, never written back. */ readonly email: Schema.NullOr; /** Main PHONE contact detail. */ readonly phone: Schema.NullOr; /** PMS language of the contact, used for its correspondence. */ readonly language: Schema.NullOr; readonly address: Schema.NullOr; readonly appendix: Schema.NullOr; readonly postalCode: Schema.NullOr; readonly city: Schema.NullOr; readonly province: Schema.NullOr; readonly countryCode: Schema.NullOr; }>>; }>; type ContactProfile = typeof ContactProfileSchema.Type; //#endregion //#region src/domain/contact/get-profile-input.d.ts export declare const ContactGetProfileInputSchema: Schema.Struct<{ /** Contact id of the signed-in guest, taken from the session — never from the client. */ readonly contactId: Schema.String; }>; type ContactGetProfileInput = typeof ContactGetProfileInputSchema.Type; //#endregion //#region src/domain/contact/get-profile-output.d.ts export declare const ContactGetProfileOutputSchema: import("effect/Schema").Struct<{ readonly id: import("effect/Schema").String; readonly title: import("effect/Schema").NullOr; readonly professionalTitle: import("effect/Schema").NullOr; readonly forename: import("effect/Schema").NullOr; readonly surname: import("effect/Schema").NullOr; readonly email: import("effect/Schema").NullOr; readonly phone: import("effect/Schema").NullOr; readonly language: import("effect/Schema").NullOr; readonly address: import("effect/Schema").NullOr; readonly appendix: import("effect/Schema").NullOr; readonly postalCode: import("effect/Schema").NullOr; readonly city: import("effect/Schema").NullOr; readonly province: import("effect/Schema").NullOr; readonly countryCode: import("effect/Schema").NullOr; }>>; }>; type ContactGetProfileOutput = typeof ContactGetProfileOutputSchema.Type; //#endregion //#region src/domain/contact/update-profile-input.d.ts /** * Every field is optional: the caller sends what the guest actually changed. A present field * replaces the stored value, an empty string clears it — omitting it leaves the PMS value alone. * * The email is deliberately absent. It is the magic-link identity, so changing it would lock the * guest out of the portal. */ export declare const ContactUpdateProfileInputSchema: Schema.Struct<{ /** Contact id of the signed-in guest, taken from the session — never from the client. */ readonly contactId: Schema.String; readonly title: Schema.optionalKey; readonly professionalTitle: Schema.optionalKey; readonly forename: Schema.optionalKey; readonly surname: Schema.optionalKey; readonly phone: Schema.optionalKey; readonly language: Schema.optionalKey; readonly address: Schema.optionalKey; readonly appendix: Schema.optionalKey; readonly postalCode: Schema.optionalKey; readonly city: Schema.optionalKey; readonly province: Schema.optionalKey; readonly countryCode: Schema.optionalKey]>>; }>>; }>; type ContactUpdateProfileInput = typeof ContactUpdateProfileInputSchema.Type; //#endregion //#region src/domain/contact/update-profile-output.d.ts /** The stored state after the write, so the caller can render what the PMS actually kept. */ export declare const ContactUpdateProfileOutputSchema: import("effect/Schema").Struct<{ readonly id: import("effect/Schema").String; readonly title: import("effect/Schema").NullOr; readonly professionalTitle: import("effect/Schema").NullOr; readonly forename: import("effect/Schema").NullOr; readonly surname: import("effect/Schema").NullOr; readonly email: import("effect/Schema").NullOr; readonly phone: import("effect/Schema").NullOr; readonly language: import("effect/Schema").NullOr; readonly address: import("effect/Schema").NullOr; readonly appendix: import("effect/Schema").NullOr; readonly postalCode: import("effect/Schema").NullOr; readonly city: import("effect/Schema").NullOr; readonly province: import("effect/Schema").NullOr; readonly countryCode: import("effect/Schema").NullOr; }>>; }>; type ContactUpdateProfileOutput = typeof ContactUpdateProfileOutputSchema.Type; //#endregion //#region src/codegen/v10/metadata/search-filter-category-keys.d.ts declare const GENERATED_SEARCH_FILTER_CATEGORY_KEYS: readonly ["ACCESSIBILITY", "BATHROOM", "ENTERTAINMENT_UTILITIES", "ESSENTIALS", "FAMILIES_CHILDREN", "KITCHEN", "LIVING_SLEEPING", "OTHER", "OUTDOORS", "PROPERTY_DETAILS_RULES", "WELLNESS_RECREATION", "roomSummary", "vicinity"]; //#endregion //#region src/domain/custom-attributes/definition.d.ts export declare const CustomAttributeStableKeySchema: Schema.String; /** Workspace- and environment-specific v10 definition ID. Never a public query key. */ export declare const CustomAttributeIdSchema: Schema.String; /** * v9 rental-data attribute to request and render. It lives in its own field so * the stable key never has to carry a workspace-specific identifier. */ export declare const CustomAttributeV9BindingSchema: Schema.String; /** * `roomSummary` and `vicinity` are *group* names in the generated v10 metadata * catalog rather than user-facing attribute categories, so they are not selectable * for a custom attribute even though they appear in that key list. */ declare const NON_ATTRIBUTE_CATEGORY_KEYS: readonly ["roomSummary", "vicinity"]; type CustomAttributeCategoryKey = Exclude<(typeof GENERATED_SEARCH_FILTER_CATEGORY_KEYS)[number], (typeof NON_ATTRIBUTE_CATEGORY_KEYS)[number]>; export declare const CUSTOM_ATTRIBUTE_CATEGORY_KEYS: CustomAttributeCategoryKey[]; export declare const CustomAttributeCategorySchema: Schema.Literals; export declare const DEFAULT_CUSTOM_ATTRIBUTE_CATEGORY = "OTHER"; export declare const CustomAttributeLocalizedLabelSchema: Schema.Struct<{ "de-DE": Schema.Trimmed; "en-US": Schema.Trimmed; }>; export declare const CustomAttributePartialLabelSchema: Schema.Struct<{ readonly "de-DE": Schema.optionalKey; readonly "en-US": Schema.optionalKey; }>; export declare const CustomAttributeNumericBoundsSchema: Schema.Struct<{ readonly min: Schema.Number; readonly max: Schema.Number; }>; export declare const CustomAttributeExposureSchema: Schema.Literals; /** * Normalized filter policy. Authoring shorthands (`true`, `"internal"`, an * object, or omission) all collapse into exactly one of these two shapes, so no * adapter re-interprets an authoring convenience. */ export declare const ResolvedCustomAttributeFilterSchema: Schema.Union; }>, Schema.Struct<{ readonly enabled: Schema.Literal; readonly exposure: Schema.Literals; /** Always false for non-boolean attributes. */ readonly allowsFalseValue: Schema.Boolean; /** UI hints only; the parser never enforces them. */ readonly numericBounds: Schema.optionalKey>; }>]>; export declare const DISABLED_CUSTOM_ATTRIBUTE_FILTER: { readonly enabled: false; }; /** Option identity from the catalog, paired with its resolved label. */ export declare const ResolvedCustomAttributeOptionSchema: Schema.Struct<{ readonly value: Schema.Trimmed; readonly label: Schema.Struct<{ "de-DE": Schema.Trimmed; "en-US": Schema.Trimmed; }>; }>; export declare const ResolvedCustomAttributeSchema: Schema.Union; readonly v9: Schema.optionalKey; readonly label: Schema.Struct<{ "de-DE": Schema.Trimmed; "en-US": Schema.Trimmed; }>; readonly category: Schema.Literals; readonly display: Schema.Boolean; readonly filter: Schema.Union; }>, Schema.Struct<{ readonly enabled: Schema.Literal; readonly exposure: Schema.Literals; /** Always false for non-boolean attributes. */ readonly allowsFalseValue: Schema.Boolean; /** UI hints only; the parser never enforces them. */ readonly numericBounds: Schema.optionalKey>; }>]>; readonly type: Schema.Literal<"boolean">; }>, Schema.Struct<{ readonly key: Schema.String; readonly id: Schema.optionalKey; readonly v9: Schema.optionalKey; readonly label: Schema.Struct<{ "de-DE": Schema.Trimmed; "en-US": Schema.Trimmed; }>; readonly category: Schema.Literals; readonly display: Schema.Boolean; readonly filter: Schema.Union; }>, Schema.Struct<{ readonly enabled: Schema.Literal; readonly exposure: Schema.Literals; /** Always false for non-boolean attributes. */ readonly allowsFalseValue: Schema.Boolean; /** UI hints only; the parser never enforces them. */ readonly numericBounds: Schema.optionalKey>; }>]>; readonly type: Schema.Literal<"int">; }>, Schema.Struct<{ readonly key: Schema.String; readonly id: Schema.optionalKey; readonly v9: Schema.optionalKey; readonly label: Schema.Struct<{ "de-DE": Schema.Trimmed; "en-US": Schema.Trimmed; }>; readonly category: Schema.Literals; readonly display: Schema.Boolean; readonly filter: Schema.Union; }>, Schema.Struct<{ readonly enabled: Schema.Literal; readonly exposure: Schema.Literals; /** Always false for non-boolean attributes. */ readonly allowsFalseValue: Schema.Boolean; /** UI hints only; the parser never enforces them. */ readonly numericBounds: Schema.optionalKey>; }>]>; readonly type: Schema.Literal<"string">; }>, Schema.Struct<{ readonly key: Schema.String; readonly id: Schema.optionalKey; readonly v9: Schema.optionalKey; readonly label: Schema.Struct<{ "de-DE": Schema.Trimmed; "en-US": Schema.Trimmed; }>; readonly category: Schema.Literals; readonly display: Schema.Boolean; readonly filter: Schema.Union; }>, Schema.Struct<{ readonly enabled: Schema.Literal; readonly exposure: Schema.Literals; /** Always false for non-boolean attributes. */ readonly allowsFalseValue: Schema.Boolean; /** UI hints only; the parser never enforces them. */ readonly numericBounds: Schema.optionalKey>; }>]>; readonly type: Schema.Literal<"option">; readonly options: Schema.$Array; }>>; }>]>; type CustomAttributeLocalizedLabel = typeof CustomAttributeLocalizedLabelSchema.Type; type CustomAttributePartialLabel = typeof CustomAttributePartialLabelSchema.Encoded; type CustomAttributeId = typeof CustomAttributeIdSchema.Type; type CustomAttributeV9Binding = typeof CustomAttributeV9BindingSchema.Type; type CustomAttributeCategory = typeof CustomAttributeCategorySchema.Type; type CustomAttributeExposure = typeof CustomAttributeExposureSchema.Type; type CustomAttributeNumericBounds = typeof CustomAttributeNumericBoundsSchema.Type; type ResolvedCustomAttributeFilter = typeof ResolvedCustomAttributeFilterSchema.Type; type ResolvedCustomAttributeOption = typeof ResolvedCustomAttributeOptionSchema.Type; type ResolvedCustomAttribute = typeof ResolvedCustomAttributeSchema.Type; /** * Whether a value may be rendered. * * There is no visibility term here: only public definitions can enter a catalog, * so display policy is the only remaining question. */ export declare const isDisplayableCustomAttribute: (attribute: ResolvedCustomAttribute) => boolean; /** Only public filters are advertised through `getFilters`. */ export declare const isPubliclyFilterableCustomAttribute: (attribute: ResolvedCustomAttribute) => boolean; /** Public and internal filters are both usable by query parsing and compositions. */ export declare const isFilterableCustomAttribute: (attribute: ResolvedCustomAttribute) => boolean; //#endregion //#region src/domain/custom-attributes/catalog.d.ts /** * The custom-attribute catalog. * * A description of the workspace's custom-attribute definitions, keyed by stable * key. It owns every backend fact — definition ID, backend type, option * identities — so that product configuration never restates one. * * It only ever contains definitions the backend marks `PUBLIC`: the read * constrains visibility server-side, so a website cannot reach private data and * no visibility field has to travel with the data. * * The catalog is read from the definitions API **once per build**, by the planned * `fetchCustomAttributeCatalog(config)` helper, and handed straight to * `defineCustomAttributes`. Nothing generates a file and nothing is committed, so * definition IDs are never copied by hand and the catalog cannot drift from the * backend. A single build-time read is explicitly permitted; what is forbidden is * a definition lookup per search request. * * `parseCustomAttributeCatalog` is the validation boundary for any catalog that * arrives as plain data — the fetch result, parsed JSON, or a dynamically * assembled object. * * Consequence for types: a fetched catalog is widened, so `keyof Catalog` is * `string` and the compile-time key and option-value unions do not apply on that * path. Every check still runs, one layer later, when `defineCustomAttributes` * validates the join. A literal `as const` catalog keeps the compile-time unions * and is used by fixtures and by a consumer who deliberately pins a catalog. */ export declare const CUSTOM_ATTRIBUTE_BACKEND_TYPES: readonly ["BOOLEAN", "LOCALE_DAY", "LOCALE_TEXT", "LOCAL_TIME", "LOCAL_TIMERANGE", "MONETARY_VALUE", "MULTI_SELECT", "NUMBER", "SINGLE_SELECT", "TEXT"]; type CustomAttributeBackendType = (typeof CUSTOM_ATTRIBUTE_BACKEND_TYPES)[number]; export declare const CUSTOM_ATTRIBUTE_VALUE_TYPES: readonly ["boolean", "int", "option", "string"]; type CustomAttributeValueType = (typeof CUSTOM_ATTRIBUTE_VALUE_TYPES)[number]; /** * Total, explicit mapping from backend type to canonical SDK value type. * * `null` marks a backend type with no canonical representation yet, so selecting * such a definition fails rather than being approximated: * * - `MULTI_SELECT` needs AND/OR and multiple-value semantics first. * - `LOCALE_TEXT` needs a locale-selection and search-value policy first. * - date, time, and monetary types need dedicated canonical types and parsers. */ export declare const CANONICAL_VALUE_TYPE_BY_BACKEND_TYPE: { readonly BOOLEAN: "boolean"; readonly NUMBER: "int"; readonly SINGLE_SELECT: "option"; readonly TEXT: "string"; readonly LOCALE_TEXT: null; readonly MULTI_SELECT: null; readonly LOCALE_DAY: null; readonly LOCAL_TIME: null; readonly LOCAL_TIMERANGE: null; readonly MONETARY_VALUE: null; }; /** Type-level counterpart of the mapping table above. */ type CanonicalValueTypeFor = BackendType extends keyof typeof CANONICAL_VALUE_TYPE_BY_BACKEND_TYPE ? (typeof CANONICAL_VALUE_TYPE_BY_BACKEND_TYPE)[BackendType] : null; export declare const toCanonicalValueType: (backendType: CustomAttributeBackendType) => CustomAttributeValueType | null; declare const CustomAttributeCatalogDefinitionSchema: Schema.Struct<{ /** Workspace- and environment-specific v10 definition ID used by REST search. */ readonly id: Schema.String; readonly type: Schema.Literals; /** Option identities. The backend defines values; labels are product policy. */ readonly options: Schema.optionalKey>; /** Present only where the backend supplies labels; usually absent. */ readonly label: Schema.optionalKey; readonly "en-US": Schema.optionalKey; }>>; }>; export declare const CustomAttributeCatalogSchema: Schema.$Record; /** Option identities. The backend defines values; labels are product policy. */ readonly options: Schema.optionalKey>; /** Present only where the backend supplies labels; usually absent. */ readonly label: Schema.optionalKey; readonly "en-US": Schema.optionalKey; }>>; }>>; type CustomAttributeCatalogDefinition = typeof CustomAttributeCatalogDefinitionSchema.Type; type CustomAttributeCatalog = typeof CustomAttributeCatalogSchema.Type; /** * Structural constraint used by `defineCustomAttributes`. It is written by hand * rather than derived from the schema so that an `as const` catalog keeps its * literal keys, option values, and backend types. A fetched * `CustomAttributeCatalog` also satisfies it, with those literals widened. */ type CustomAttributeCatalogDefinitionInput = { readonly id: string; readonly type: CustomAttributeBackendType; readonly options?: readonly string[]; readonly label?: CustomAttributePartialLabel; }; type CustomAttributeCatalogInput = Readonly>; /** * Validates a catalog that arrives without useful static types: the build-time * fetch result, parsed JSON, or a dynamically assembled object. Runtime * guarantees are identical to the literal path; only the compile-time key and * option unions are lost. * * The planned `fetchCustomAttributeCatalog(config)` will map the definitions API * response into this shape and hand it to this function, so a malformed or * unexpected response fails the build here rather than surfacing later as an * attribute that silently matches nothing. */ export declare const parseCustomAttributeCatalog: (catalog: unknown) => CustomAttributeCatalog; export declare const EMPTY_CUSTOM_ATTRIBUTE_CATALOG: {}; //#endregion //#region src/domain/custom-attributes/define.d.ts /** * The product-policy layer and the join. * * A consumer selects catalog definitions by key and supplies only policy. Backend * facts — definition ID, canonical type, option identities — are never restated * here, so they cannot be mistyped or invented. * * Two layers of enforcement, and which one applies depends on the catalog: * * - A **literal** (`as const`) catalog gives closed unions: selection keys, * option-label keys, and the per-type override shape are all derived from it, * so an unknown key, an unsupported backend type, or a numeric bound on a * boolean is a compile error. * - A **fetched** catalog is widened to `Record`, so `keyof Catalog` * is `string` and none of those unions bite. This is the normal production * path once the catalog is read from the definitions API at build time. * * The join below is therefore the load-bearing layer: every rule the type system * can express is also checked here, so both paths reject the same configurations — * the literal path just fails earlier and with autocomplete. */ type CommonOverrides = { /** * Public query key, when the catalog key cannot serve as one. * * Backend definition keys are human-authored labels and routinely contain * spaces or punctuation, which cannot appear in a query string. Renaming is * product policy, so it lives here rather than in the catalog: the catalog is * re-read on every build and an authored field there would be overwritten. * * Defaults to the catalog key, which is used as-is when it is already URL-safe. */ readonly key?: string; /** * Merged over the catalog label. The merged result must cover every locale, so * a partial override is only valid when the catalog supplies the rest. */ readonly label?: CustomAttributePartialLabel; readonly category?: CustomAttributeCategoryKey; /** Defaults to true. Catalog-backed definitions are already public-only. */ readonly display?: boolean; /** Rental-data binding, when the same attribute also exists in v9. */ readonly v9?: string; }; type FilterOverride = boolean | "internal" | Advanced; type ExposureOverride = { readonly exposure?: CustomAttributeExposure; }; type BooleanOverrides = CommonOverrides & { readonly filter?: FilterOverride; }; type IntOverrides = CommonOverrides & { readonly filter?: FilterOverride; }; type StringOverrides = CommonOverrides & { readonly filter?: FilterOverride; }; type OptionOverrides = CommonOverrides & { readonly filter?: FilterOverride; /** * Keyed by catalog option value, so option identity is referenced rather than * reproduced. Required for every option once the filter is enabled. */ readonly optionLabels?: { readonly [Value in OptionValue]?: CustomAttributeLocalizedLabel; }; }; type CatalogKeyOf = keyof Catalog & string; type CatalogDefinitionFor = Key extends keyof Catalog ? Catalog[Key] : never; type OptionValuesOf = Definition extends { readonly options: readonly (infer Value)[]; } ? Value & string : string; type OverridesForCanonical = Canonical extends "boolean" ? BooleanOverrides : Canonical extends "int" ? IntOverrides : Canonical extends "string" ? StringOverrides : Canonical extends "option" ? OptionOverrides : never; type OverridesFor = OverridesForCanonical, OptionValuesOf>; /** * Selection keys are constrained to the catalog keys — closed for a literal * catalog, effectively open for a fetched one, where this degrades to an index * signature and the join performs the check instead. */ type CustomAttributeSelection = { readonly [Key in CatalogKeyOf]?: OverridesFor>; }; type V9OnlyCommon = { /** Required: a v9-only attribute is identified solely by its rental-data field. */ readonly v9: string; /** Required: v9 has no definition catalog, so there is no label to inherit. */ readonly label: CustomAttributeLocalizedLabel; readonly category?: CustomAttributeCategoryKey; readonly display?: boolean; }; /** * v9-only attributes carry no `filter` field at all, because v9 has no * custom-attribute search path. That makes an unexecutable filter impossible to * express rather than merely invalid. */ type V9OnlyCustomAttributeInput = (V9OnlyCommon & { readonly type: "boolean"; }) | (V9OnlyCommon & { readonly type: "int"; }) | (V9OnlyCommon & { readonly type: "string"; }) | (V9OnlyCommon & { readonly type: "option"; /** For v9 the authored keys *are* the option identities. */ readonly optionLabels: Readonly>; }); /** Keys of every member of a union, rather than only the shared ones. */ type KeysOfUnion = Type extends unknown ? keyof Type : never; /** * Rejects fields the target shape does not declare. * * A plain generic constraint is not enough: once an object literal is captured by * an inferred type parameter it loses freshness, so TypeScript stops reporting * excess properties. Mapping every unexpected key to `never` reinstates that * check, which is what keeps a backend fact such as `id` from being restated. * * Excess keys are measured against `KeysOfUnion`, not `keyof Allowed`. * For a literal catalog `Allowed` is one shape and the two agree. For a fetched, * widened catalog `Allowed` is the union of all four override shapes, and * `keyof` on a union yields only the *shared* keys — which would reject * `optionLabels` on every attribute and make option labels unusable on exactly the * path that matters most. */ type Exact = Allowed & { readonly [Key in Exclude>]: never; }; type V9OnlyVariantFor = Extract; /** Exactness constraint for the selection, applied per authored key. */ type CustomAttributeSelectionExact = { readonly [Key in keyof Select]: Key extends CatalogKeyOf ? Exact>> : never; }; /** Exactness constraint for v9-only attributes, applied per authored key. */ type V9OnlyCustomAttributesExact = { readonly [Key in keyof V9Only]: Exact>; }; /** * Non-generic view of a registry, for crossing an API boundary such as SDK * options where the catalog and selection types are not available. * * A `CustomAttributeRegistry` is assignable to this without a conversion, and * deliberately not defined in terms of it: intersecting the closed per-key maps * with an index signature would make an unknown key resolve instead of failing. */ type CustomAttributeRegistrySnapshot = { readonly byKey: Readonly>; readonly byId: Readonly>; readonly keys: Readonly>; }; /** Ordered view of a registry, for adapters that iterate rather than look up. */ export declare const toCustomAttributeList: (registry: CustomAttributeRegistrySnapshot) => readonly ResolvedCustomAttribute[]; /** A site that uses no custom attributes. */ export declare const EMPTY_CUSTOM_ATTRIBUTE_REGISTRY: CustomAttributeRegistrySnapshot; type ResolvedFor = Extract; /** The public key an entry ends up under: the `key` override, else the catalog key. */ type ResolvedStableKey = Overrides extends { readonly key: infer Alias extends string; } ? Alias : CatalogKey; type ResolvedSelected = ResolvedFor["type"]>>>; /** * Both indexes are derived from one validated collection, so a `byKey` key can * never disagree with its entry's stable key and a `byId` key can never disagree * with its entry's definition ID. */ type CustomAttributeRegistry = { readonly byKey: { readonly [Key in keyof Select & string as ResolvedStableKey]: ResolvedSelected & { readonly key: ResolvedStableKey; }; } & { readonly [Key in keyof V9Only & string]: ResolvedFor & { readonly key: Key; }; }; readonly byId: Readonly>; /** Stable keys as literal types, for highlight order and other key references. */ readonly keys: { readonly [Key in keyof Select & string as ResolvedStableKey]: ResolvedStableKey; } & { readonly [Key in keyof V9Only & string]: Key; }; }; /** * One superset schema rather than a per-type union: it keeps structural * validation in the schema while leaving type-specific contradictions to the * join, which can name the attribute, the field, and the reason. * * The option-label record uses an unchecked key schema deliberately — * `Schema.Record` silently drops entries whose key fails its key schema, which * would make a mistyped option value disappear instead of failing. Keys are * validated against the catalog option values during the join. */ declare const CustomAttributeOverridesSchema: Schema.Struct<{ readonly key: Schema.optionalKey; readonly label: Schema.optionalKey; readonly "en-US": Schema.optionalKey; }>>; readonly category: Schema.optionalKey>; readonly display: Schema.optionalKey; readonly v9: Schema.optionalKey; readonly filter: Schema.optionalKey, Schema.Struct<{ readonly exposure: Schema.optionalKey>; readonly allowsFalseValue: Schema.optionalKey; readonly numericBounds: Schema.optionalKey>; }>]>>; readonly optionLabels: Schema.optionalKey>>; }>; declare const V9OnlyCustomAttributeSchema: Schema.Struct<{ readonly v9: Schema.String; readonly type: Schema.Literals; readonly label: Schema.Struct<{ "de-DE": Schema.Trimmed; "en-US": Schema.Trimmed; }>; readonly category: Schema.optionalKey>; readonly display: Schema.optionalKey; readonly optionLabels: Schema.optionalKey>>; }>; /** * Joins the catalog with product policy and returns one validated registry with * both indexes derived from it. * * The catalog normally comes from a build-time read of the definitions API, so it * arrives widened and every rule is enforced by the join rather than by the type * system. A literal `as const` catalog is accepted too and additionally closes the * selection keys, option values, and per-type override shapes at compile time. * * Every problem is reported at once rather than one per run, so a single pass is * enough to see and fix all of them. Throws, because this runs while the SDK is * being configured and a broken catalog must never reach a deployment. */ export declare const defineCustomAttributes: , const V9Only extends Readonly> = Record>(input: { readonly catalog: Catalog; readonly select: Select & CustomAttributeSelectionExact; readonly v9Only?: V9Only & V9OnlyCustomAttributesExact; }) => CustomAttributeRegistry; /** * Builds a registry from configuration that has no static types — a JSON options * file, or an object assembled at runtime. * * The result is the erased snapshot rather than a key-literal registry, because * there are no literals to preserve. Every runtime rule still applies: this is the * same join, so the JSON path cannot be more permissive than the TypeScript one. */ export declare const defineCustomAttributesFromUnknown: (input: unknown) => CustomAttributeRegistrySnapshot; type CustomAttributeOverridesInput = typeof CustomAttributeOverridesSchema.Encoded; //#endregion //#region src/domain/feedback/form.d.ts export declare const FeedbackQuestionTypeSchema: Schema.Literals; type FeedbackQuestionType = typeof FeedbackQuestionTypeSchema.Type; /** * Question of a feedback form, already normalized: the PMS keeps the type-specific parts in an * untyped `settings` blob, the fields below are the parsed result of it. */ export declare const FeedbackQuestionSchema: Schema.Struct<{ readonly id: Schema.String; readonly type: Schema.Literals; readonly title: Schema.String; readonly description: Schema.NullOr; readonly required: Schema.Boolean; /** MULTIPLE_CHOICE: selectable options. Empty for every other question type. */ readonly choices: Schema.$Array; /** NPS: label of the lowest scale value, null when the PMS has none configured. */ readonly minLabel: Schema.NullOr; /** NPS: label of the highest scale value, null when the PMS has none configured. */ readonly maxLabel: Schema.NullOr; /** TEXT: true asks for a multi-line answer. */ readonly multiline: Schema.Boolean; }>; type FeedbackQuestion = typeof FeedbackQuestionSchema.Type; export declare const FeedbackFormSchema: Schema.Struct<{ readonly id: Schema.String; /** * Empty for an already answered form that the tenant has taken offline: the PMS exposes titles * only for live forms. The question titles are unaffected and carry the readable content. */ readonly title: Schema.String; readonly description: Schema.NullOr; readonly questions: Schema.$Array; readonly title: Schema.String; readonly description: Schema.NullOr; readonly required: Schema.Boolean; /** MULTIPLE_CHOICE: selectable options. Empty for every other question type. */ readonly choices: Schema.$Array; /** NPS: label of the lowest scale value, null when the PMS has none configured. */ readonly minLabel: Schema.NullOr; /** NPS: label of the highest scale value, null when the PMS has none configured. */ readonly maxLabel: Schema.NullOr; /** TEXT: true asks for a multi-line answer. */ readonly multiline: Schema.Boolean; }>>; }>; type FeedbackForm = typeof FeedbackFormSchema.Type; export declare const FeedbackAnswerSchema: Schema.Struct<{ readonly questionId: Schema.String; readonly values: Schema.$Array; }>; type FeedbackAnswer = typeof FeedbackAnswerSchema.Type; //#endregion //#region src/domain/feedback/get-booking-feedback-input.d.ts export declare const BookingFeedbackInputSchema: Schema.Struct<{ readonly bookingId: Schema.String; }>; type BookingFeedbackInput = typeof BookingFeedbackInputSchema.Type; //#endregion //#region src/domain/feedback/get-booking-feedback-output.d.ts export declare const BookingFeedbackOutputSchema: Schema.Struct<{ /** null only when the booking has no response and the PMS has no live survey form either. */ readonly form: Schema.NullOr; readonly questions: Schema.$Array; readonly title: Schema.String; readonly description: Schema.NullOr; readonly required: Schema.Boolean; readonly choices: Schema.$Array; readonly minLabel: Schema.NullOr; readonly maxLabel: Schema.NullOr; readonly multiline: Schema.Boolean; }>>; }>>; /** true once a response for this booking and form exists; feedback can then only be read. */ readonly submitted: Schema.Boolean; /** Already given answers, empty while `submitted` is false. */ readonly answers: Schema.$Array; }>>; }>; type BookingFeedbackOutput = typeof BookingFeedbackOutputSchema.Type; //#endregion //#region src/domain/feedback/rental-reviews-input.d.ts /** A closed or open-ended period of days, ISO dates; `till` omitted means "still running". */ export declare const RentalReviewsStayPeriodSchema: Schema.Struct<{ readonly from: Schema.String; readonly till: Schema.optionalKey; }>; type RentalReviewsStayPeriod = typeof RentalReviewsStayPeriodSchema.Type; export declare const RentalReviewsInputSchema: Schema.Struct<{ readonly rentalId: Schema.String; /** * When given, only reviews of stays inside one of these periods are returned and aggregated. An * owner portal passes the owner's contract periods for the rental, so a review of a stay under a * previous or later owner stays out of the result. A review without a booking falls back to the * date it was given; one with neither is dropped. Omitted, every visible review is returned. */ readonly stayPeriods: Schema.optionalKey; }>>>; }>; type RentalReviewsInput = typeof RentalReviewsInputSchema.Type; //#endregion //#region src/domain/feedback/rental-reviews-output.d.ts /** * One criterion of a review. The label is the question title exactly as the tenant configured it, * so the catalogue is tenant specific and carries no fixed order or fixed set. */ export declare const RentalReviewCriterionSchema: Schema.Struct<{ readonly label: Schema.String; /** STARS value between 1 and 5, null when the guest only commented on this criterion. */ readonly rating: Schema.NullOr; /** TEXT answer given for this criterion, null when there is none. */ readonly comment: Schema.NullOr; }>; type RentalReviewCriterion = typeof RentalReviewCriterionSchema.Type; export declare const RentalReviewPeriodSchema: Schema.Struct<{ readonly from: Schema.String; readonly till: Schema.String; }>; /** * One guest response, kept per criterion instead of collapsed into a single rating and one block of * text the way the website's review items are: the owner portal shows the criteria themselves. */ export declare const RentalReviewSchema: Schema.Struct<{ /** Id of the form response; stable per review. */ readonly id: Schema.String; /** Mean of the rated criteria, null when the response carries comments only. */ readonly averageRating: Schema.NullOr; /** * `customer.label` of the PMS — sometimes a name, sometimes a generic word. Deliberately not * composed from forename and surname: the label is what the PMS itself considers publishable. */ readonly customerLabel: Schema.NullOr; /** When the response was given, ISO. Null when the PMS has no date for it. */ readonly createdAt: Schema.NullOr; /** Arrival and departure of the reviewed stay, null when the response has no booking attached. */ readonly period: Schema.NullOr>; readonly criteria: Schema.$Array; /** TEXT answer given for this criterion, null when there is none. */ readonly comment: Schema.NullOr; }>>; }>; type RentalReview = typeof RentalReviewSchema.Type; export declare const RentalReviewCriterionAverageSchema: Schema.Struct<{ readonly label: Schema.String; readonly rating: Schema.Number; }>; type RentalReviewCriterionAverage = typeof RentalReviewCriterionAverageSchema.Type; /** * Classification bucket of an average rating. Returned as a key, not as a rendered phrase: the * caller owns the wording, and this endpoint has no locale. */ export declare const RentalReviewClassificationSchema: Schema.Literals; type RentalReviewClassification = typeof RentalReviewClassificationSchema.Type; export declare const RentalReviewsOutputSchema: Schema.Struct<{ /** Newest response first, the same order the website's review items use. */ readonly entries: Schema.$Array; /** * `customer.label` of the PMS — sometimes a name, sometimes a generic word. Deliberately not * composed from forename and surname: the label is what the PMS itself considers publishable. */ readonly customerLabel: Schema.NullOr; /** When the response was given, ISO. Null when the PMS has no date for it. */ readonly createdAt: Schema.NullOr; /** Arrival and departure of the reviewed stay, null when the response has no booking attached. */ readonly period: Schema.NullOr>; readonly criteria: Schema.$Array; /** TEXT answer given for this criterion, null when there is none. */ readonly comment: Schema.NullOr; }>>; }>>; /** Mean over every rated entry, null when none of them carries a rating. */ readonly averageRating: Schema.NullOr; /** Bucket of `averageRating`, null whenever that is null. */ readonly classification: Schema.NullOr>; /** Mean per criterion across all entries; a criterion nobody rated does not appear. */ readonly criteriaAverages: Schema.$Array>; }>; type RentalReviewsOutput = typeof RentalReviewsOutputSchema.Type; //#endregion //#region src/domain/feedback/submit-booking-feedback-input.d.ts export declare const SubmitBookingFeedbackInputSchema: Schema.Struct<{ readonly formId: Schema.String; readonly rentalId: Schema.String; readonly bookingId: Schema.String; readonly customerId: Schema.optionalKey; readonly answers: Schema.$Array; }>>; }>; type SubmitBookingFeedbackInput = typeof SubmitBookingFeedbackInputSchema.Type; //#endregion //#region src/domain/feedback/submit-booking-feedback-output.d.ts export declare const SubmitBookingFeedbackOutputSchema: Schema.Struct<{ readonly formResponseId: Schema.String; }>; type SubmitBookingFeedbackOutput = typeof SubmitBookingFeedbackOutputSchema.Type; //#endregion //#region src/domain/filter/get-filters-input.d.ts export declare const FilterGetFiltersInputSchema: Schema.Struct<{ readonly locale: Schema.Literals; }>; type FilterGetFiltersInput = typeof FilterGetFiltersInputSchema.Type; //#endregion //#region src/domain/filter/get-filters-output.d.ts export declare const FilterGetFiltersNumericBoundsSchema: Schema.Struct<{ readonly min: Schema.Number; readonly max: Schema.Number; }>; export declare const FilterGetFiltersOutputOptionSchema: Schema.Struct<{ readonly value: Schema.String; readonly label: Schema.String; }>; type FilterGetFiltersNumericBounds = typeof FilterGetFiltersNumericBoundsSchema.Type; type FilterGetFiltersOutputOption = typeof FilterGetFiltersOutputOptionSchema.Type; export declare const FilterGetFiltersOutputItemSchema: Schema.Union; }>, Schema.Struct<{ readonly searchParameterQueryKey: Schema.String; readonly label: Schema.String; readonly category: Schema.String; readonly type: Schema.Literal<"IntFilter">; readonly numericBounds: Schema.optionalKey>; }>, Schema.Struct<{ readonly searchParameterQueryKey: Schema.String; readonly label: Schema.String; readonly category: Schema.String; readonly type: Schema.Literal<"StringFilter">; }>, Schema.Struct<{ readonly searchParameterQueryKey: Schema.String; readonly label: Schema.String; readonly category: Schema.String; readonly type: Schema.Literal<"OptionFilter">; readonly options: Schema.$Array>; }>]>; export declare const FilterGetFiltersOutputSchema: Schema.$Array; }>, Schema.Struct<{ readonly searchParameterQueryKey: Schema.String; readonly label: Schema.String; readonly category: Schema.String; readonly type: Schema.Literal<"IntFilter">; readonly numericBounds: Schema.optionalKey>; }>, Schema.Struct<{ readonly searchParameterQueryKey: Schema.String; readonly label: Schema.String; readonly category: Schema.String; readonly type: Schema.Literal<"StringFilter">; }>, Schema.Struct<{ readonly searchParameterQueryKey: Schema.String; readonly label: Schema.String; readonly category: Schema.String; readonly type: Schema.Literal<"OptionFilter">; readonly options: Schema.$Array>; }>]>>; type FilterGetFiltersOutputItem = typeof FilterGetFiltersOutputItemSchema.Type; type FilterGetFiltersOutput = typeof FilterGetFiltersOutputSchema.Type; //#endregion //#region src/domain/documents/get-terms-and-privacy-policy-input.d.ts declare const DocumentsGetTermsAndPrivacyPolicyInputSchema: Schema.Struct<{ readonly locale: Schema.Literals; }>; type DocumentsGetTermsAndPrivacyPolicyInput = typeof DocumentsGetTermsAndPrivacyPolicyInputSchema.Type; //#endregion //#region src/domain/documents/get-terms-and-privacy-policy-output.d.ts declare const DocumentsGetTermsAndPrivacyPolicyOutputSchema: Schema.Struct<{ readonly terms: Schema.optionalKey>; readonly privacyPolicy: Schema.optionalKey>; }>; type DocumentsGetTermsAndPrivacyPolicyOutput = typeof DocumentsGetTermsAndPrivacyPolicyOutputSchema.Type; //#endregion //#region src/domain/invoice/file.d.ts export declare const InvoiceFileSchema: Schema.Struct<{ readonly id: Schema.String; readonly fileName: Schema.optionalKey; readonly category: Schema.optionalKey; readonly format: Schema.optionalKey; readonly titles: Schema.optionalKey>; }>; type InvoiceFile = typeof InvoiceFileSchema.Type; //#endregion //#region src/domain/invoice/list-by-ids.d.ts export declare const InvoiceListByIdsInputSchema: Schema.Struct<{ readonly invoiceIds: Schema.$Array; }>; type InvoiceListByIdsInput = typeof InvoiceListByIdsInputSchema.Type; export declare const InvoiceListByIdsOutputSchema: Schema.$Array; readonly status: Schema.String; readonly booked: Schema.String; readonly type: Schema.String; readonly net: Schema.Boolean; readonly dueDate: Schema.optionalKey; readonly total: Schema.Number; readonly paid: Schema.Number; readonly outstanding: Schema.Number; readonly files: Schema.$Array; readonly category: Schema.optionalKey; readonly format: Schema.optionalKey; readonly titles: Schema.optionalKey>; }>>; }>>; type InvoiceListByIdsOutput = typeof InvoiceListByIdsOutputSchema.Type; //#endregion //#region src/domain/invoice/model.d.ts export declare const InvoiceSchema: Schema.Struct<{ readonly id: Schema.String; readonly nr: Schema.String; readonly label: Schema.optionalKey; readonly status: Schema.String; readonly booked: Schema.String; readonly type: Schema.String; readonly net: Schema.Boolean; readonly dueDate: Schema.optionalKey; readonly total: Schema.Number; readonly paid: Schema.Number; readonly outstanding: Schema.Number; readonly files: Schema.$Array; readonly category: Schema.optionalKey; readonly format: Schema.optionalKey; readonly titles: Schema.optionalKey>; }>>; }>; type Invoice = typeof InvoiceSchema.Type; //#endregion //#region src/domain/invoice/reference.d.ts export declare const InvoiceReferenceSchema: Schema.Struct<{ readonly id: Schema.String; readonly nr: Schema.String; }>; type InvoiceReference = typeof InvoiceReferenceSchema.Type; //#endregion //#region src/domain/invoice/request-file-download.d.ts export declare const InvoiceRequestFileDownloadInputSchema: Schema.Struct<{ readonly fileId: Schema.String; }>; type InvoiceRequestFileDownloadInput = typeof InvoiceRequestFileDownloadInputSchema.Type; export declare const InvoiceRequestFileDownloadOutputSchema: Schema.Struct<{ readonly fileId: Schema.String; readonly url: Schema.String; readonly expiresAt: Schema.String; }>; type InvoiceRequestFileDownloadOutput = typeof InvoiceRequestFileDownloadOutputSchema.Type; /** Several files at once; the PMS mutation takes a list, so one round trip covers a whole archive. */ export declare const InvoiceRequestFileDownloadsInputSchema: Schema.Struct<{ readonly fileIds: Schema.$Array; }>; type InvoiceRequestFileDownloadsInput = typeof InvoiceRequestFileDownloadsInputSchema.Type; export declare const InvoiceRequestFileDownloadsOutputSchema: Schema.$Array>; type InvoiceRequestFileDownloadsOutput = typeof InvoiceRequestFileDownloadsOutputSchema.Type; //#endregion //#region src/domain/owner/list-financials-input.d.ts export declare const OwnerListSettlementsByContractIdsInputSchema: Schema.Struct<{ readonly contractIds: Schema.$Array; }>; type OwnerListSettlementsByContractIdsInput = typeof OwnerListSettlementsByContractIdsInputSchema.Type; export declare const OwnerListDisbursementsByRentalIdsInputSchema: Schema.Struct<{ readonly rentalIds: Schema.$Array; }>; type OwnerListDisbursementsByRentalIdsInput = typeof OwnerListDisbursementsByRentalIdsInputSchema.Type; //#endregion //#region src/domain/owner/list-financials-output.d.ts export declare const OwnerSettlementSchema: Schema.Struct<{ readonly id: Schema.String; readonly status: Schema.String; readonly type: Schema.String; readonly period: Schema.Struct<{ readonly start: Schema.String; readonly end: Schema.String; }>; readonly paymentStatus: Schema.optionalKey; readonly rentalId: Schema.String; readonly contractId: Schema.String; readonly bookingId: Schema.optionalKey; readonly disbursementId: Schema.optionalKey; readonly invoice: Schema.optionalKey>; readonly net: Schema.Boolean; readonly dueDate: Schema.optionalKey; readonly total: Schema.Number; }>; type OwnerSettlement = typeof OwnerSettlementSchema.Type; export declare const OwnerDisbursementSchema: Schema.Struct<{ readonly id: Schema.String; readonly rentalId: Schema.String; readonly kind: Schema.String; readonly calculation: Schema.String; readonly period: Schema.optionalKey>; readonly quantity: Schema.Number; readonly unitPrice: Schema.Number; readonly total: Schema.Number; readonly annotation: Schema.String; readonly earliestDate: Schema.optionalKey; readonly status: Schema.String; readonly vat: Schema.Struct<{ readonly id: Schema.String; readonly code: Schema.String; readonly label: Schema.String; }>; readonly invoice: Schema.optionalKey>; }>; type OwnerDisbursement = typeof OwnerDisbursementSchema.Type; export declare const OwnerListSettlementsByContractIdsOutputSchema: Schema.$Array; readonly paymentStatus: Schema.optionalKey; readonly rentalId: Schema.String; readonly contractId: Schema.String; readonly bookingId: Schema.optionalKey; readonly disbursementId: Schema.optionalKey; readonly invoice: Schema.optionalKey>; readonly net: Schema.Boolean; readonly dueDate: Schema.optionalKey; readonly total: Schema.Number; }>>; type OwnerListSettlementsByContractIdsOutput = typeof OwnerListSettlementsByContractIdsOutputSchema.Type; export declare const OwnerListDisbursementsByRentalIdsOutputSchema: Schema.$Array>; readonly quantity: Schema.Number; readonly unitPrice: Schema.Number; readonly total: Schema.Number; readonly annotation: Schema.String; readonly earliestDate: Schema.optionalKey; readonly status: Schema.String; readonly vat: Schema.Struct<{ readonly id: Schema.String; readonly code: Schema.String; readonly label: Schema.String; }>; readonly invoice: Schema.optionalKey>; }>>; type OwnerListDisbursementsByRentalIdsOutput = typeof OwnerListDisbursementsByRentalIdsOutputSchema.Type; //#endregion //#region src/domain/owner/list-rental-contracts-input.d.ts export declare const OwnerListRentalContractsInputSchema: Schema.Struct<{ readonly ownerId: Schema.String; }>; type OwnerListRentalContractsInput = typeof OwnerListRentalContractsInputSchema.Type; //#endregion //#region src/domain/owner/list-rental-contracts-output.d.ts export declare const OwnerRentalContractSchema: Schema.Struct<{ readonly contractId: Schema.String; readonly contractStatus: Schema.String; readonly startDate: Schema.String; readonly endDate: Schema.optionalKey; readonly rentalId: Schema.String; readonly label: Schema.String; readonly name: Schema.optionalKey; readonly status: Schema.String; readonly stars: Schema.optionalKey; readonly images: Schema.$Array; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; readonly altFallback: Schema.optionalKey>; }>>; }>; type OwnerRentalContract = typeof OwnerRentalContractSchema.Type; export declare const OwnerListRentalContractsOutputSchema: Schema.$Array; readonly rentalId: Schema.String; readonly label: Schema.String; readonly name: Schema.optionalKey; readonly status: Schema.String; readonly stars: Schema.optionalKey; readonly images: Schema.$Array; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; readonly altFallback: Schema.optionalKey>; }>>; }>>; type OwnerListRentalContractsOutput = typeof OwnerListRentalContractsOutputSchema.Type; //#endregion //#region src/domain/owner/period.d.ts export declare const OwnerPeriodSchema: Schema.Struct<{ readonly start: Schema.String; readonly end: Schema.String; }>; type OwnerPeriod = typeof OwnerPeriodSchema.Type; //#endregion //#region src/domain/regions/index.d.ts /** * A website's region tree, read at build time (`sdk.static.regions.getRegions`). Regions * nest to any depth (Nordsee → Dornum → Dornumersiel) and hold rentals. On v10 it is the * websites service's tree: the website's own, else the workspace's default, and a rental * can sit in several regions. On v9 it is vOffice's region hierarchy: one region per * rental. */ export declare const RegionsGetRegionsInputSchema: Schema.Struct<{ /** The AI Studio website id (a site build's `WEB_ID`). v9 ignores it: vOffice keeps one * region tree per customer. */ readonly aiStudioWebsiteId: Schema.Int; }>; type RegionsGetRegionsInput = typeof RegionsGetRegionsInputSchema.Type; declare const RegionTextSchema: Schema.Struct<{ readonly "de-DE": Schema.String; readonly "en-US": Schema.String; }>; type RegionText = typeof RegionTextSchema.Type; export declare const WebsiteRegionSchema: Schema.Struct<{ /** The region's key (`dornum`, `neustadt-2`): readable, unique in the tree, the same in every * language. It names the region in URLs and in `?region=`. v10: the websites service creates * it once from the German name and never changes it, so only deleting the region ends it. v9: * vOffice's German name and id (`usedom-12`), so only renaming or deleting the region itself * changes it. */ readonly id: Schema.String; /** `null` on a top-level region. */ readonly parentId: Schema.NullOr; /** 0 on a top-level region. */ readonly depth: Schema.Int; /** The region's one name, German, the same in every locale so `name[locale]` works. */ readonly name: Schema.Struct<{ readonly "de-DE": Schema.String; readonly "en-US": Schema.String; }>; /** The rentals in this region itself. */ readonly ownRentalIds: Schema.$Array; /** The own rentals, then every subregion's depth first, each rental once: what the region's * page lists and what a search scoped to the region finds. */ readonly rentalIds: Schema.$Array; }>; type WebsiteRegion = typeof WebsiteRegionSchema.Type; export declare const WebsiteRegionsSchema: Schema.Struct<{ /** v10: `true` for the website's own tree, `false` for the workspace's default tree. Always * `false` on v9. */ readonly isWebsiteOverride: Schema.Boolean; /** Depth first: every region before its subregions, siblings in order. */ readonly regions: Schema.$Array; /** 0 on a top-level region. */ readonly depth: Schema.Int; /** The region's one name, German, the same in every locale so `name[locale]` works. */ readonly name: Schema.Struct<{ readonly "de-DE": Schema.String; readonly "en-US": Schema.String; }>; /** The rentals in this region itself. */ readonly ownRentalIds: Schema.$Array; /** The own rentals, then every subregion's depth first, each rental once: what the region's * page lists and what a search scoped to the region finds. */ readonly rentalIds: Schema.$Array; }>>; }>; type WebsiteRegions = typeof WebsiteRegionsSchema.Type; /** One region as a backend states it; siblings in their order. */ type WebsiteRegionInput = Pick; /** * Orders regions depth first, keeping each parent's children in the order given, and derives * `depth` and `rentalIds`. Throws when a region repeats an id or names a parent outside the * tree (or sits in a cycle). Both backends' adapters build through it. */ export declare const buildWebsiteRegions: ({ isWebsiteOverride, regions }: { readonly isWebsiteOverride: boolean; readonly regions: readonly WebsiteRegionInput[]; }) => WebsiteRegions; //#endregion //#region src/domain/rental/get-rentals-input.d.ts export declare const RentalGetRentalsInputSchema: Schema.Struct<{ readonly locale: Schema.Literals; }>; type RentalGetRentalsInput = typeof RentalGetRentalsInputSchema.Type; //#endregion //#region src/domain/rental/get-rentals-output.d.ts export declare const RentalGetRentalsOutputItemSchema: Schema.Struct<{ readonly id: Schema.String; readonly nameOrLabel: Schema.String; readonly timeZone: Schema.String; readonly rentalType: Schema.optionalKey; readonly scope: Schema.optionalKey; readonly location: Schema.optionalKey>; readonly images: Schema.optionalKey; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; readonly altFallback: Schema.optionalKey>; }>>>; readonly address: Schema.optionalKey; readonly appendix: Schema.optionalKey; readonly postalcode: Schema.optionalKey; readonly city: Schema.optionalKey; readonly province: Schema.optionalKey; readonly country: Schema.optionalKey; }>>; readonly capacity: Schema.optionalKey; readonly maxAdults: Schema.optionalKey; readonly bedrooms: Schema.optionalKey; readonly bathrooms: Schema.optionalKey; readonly rooms: Schema.optionalKey; readonly livingAreaSqm: Schema.optionalKey; }>>; readonly description: Schema.optionalKey; readonly headline: Schema.optionalKey; readonly description: Schema.optionalKey; readonly altDescription: Schema.optionalKey; readonly arrivalInfo: Schema.optionalKey; readonly departureInfo: Schema.optionalKey; readonly locationDescription: Schema.optionalKey; readonly directions: Schema.optionalKey; }>>; readonly descriptionFallbacks: Schema.optionalKey>; readonly headline: Schema.optionalKey>; readonly description: Schema.optionalKey>; readonly altDescription: Schema.optionalKey>; readonly arrivalInfo: Schema.optionalKey>; readonly departureInfo: Schema.optionalKey>; readonly locationDescription: Schema.optionalKey>; readonly directions: Schema.optionalKey>; }>>; readonly property: Schema.optionalKey; readonly location: Schema.optionalKey>; readonly images: Schema.optionalKey; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; readonly altFallback: Schema.optionalKey>; }>>>; readonly address: Schema.optionalKey; readonly appendix: Schema.optionalKey; readonly postalcode: Schema.optionalKey; readonly city: Schema.optionalKey; readonly province: Schema.optionalKey; readonly country: Schema.optionalKey; }>>; readonly description: Schema.optionalKey; readonly headline: Schema.optionalKey; readonly description: Schema.optionalKey; readonly altDescription: Schema.optionalKey; readonly arrivalInfo: Schema.optionalKey; readonly departureInfo: Schema.optionalKey; readonly locationDescription: Schema.optionalKey; readonly directions: Schema.optionalKey; }>>; readonly descriptionFallbacks: Schema.optionalKey>; readonly headline: Schema.optionalKey>; readonly description: Schema.optionalKey>; readonly altDescription: Schema.optionalKey>; readonly arrivalInfo: Schema.optionalKey>; readonly departureInfo: Schema.optionalKey>; readonly locationDescription: Schema.optionalKey>; readonly directions: Schema.optionalKey>; }>>; readonly attributes: Schema.optionalKey; readonly facts: Schema.optionalKey>; }>>>; }>>; }>>>; readonly vicinity: Schema.optionalKey; readonly facts: Schema.optionalKey>; }>>>; }>>>; readonly highlights: Schema.optionalKey>; readonly highlightFacts: Schema.optionalKey>; }>>>; }>>; readonly rooms: Schema.optionalKey; readonly description: Schema.optionalKey; readonly descriptionFallback: Schema.optionalKey>; readonly attributes: Schema.optionalKey>; readonly attributeFacts: Schema.optionalKey>; }>>>; readonly beds: Schema.optionalKey; readonly attributes: Schema.optionalKey>; }>>>; }>>>; readonly roomSummary: Schema.optionalKey>; readonly attributes: Schema.optionalKey; readonly facts: Schema.optionalKey>; }>>>; }>>; }>>>; readonly vicinity: Schema.optionalKey; readonly facts: Schema.optionalKey>; }>>>; }>>>; readonly highlights: Schema.optionalKey>; /** `highlights` with their keys and values: same order, same length. */ readonly highlightFacts: Schema.optionalKey>; }>>>; readonly reviews: Schema.optionalKey; readonly author: Schema.optionalKey; readonly label: Schema.optionalKey; readonly createdAt: Schema.optionalKey; readonly rating: Schema.String; readonly text: Schema.optionalKey; }>, Schema.Struct<{ readonly id: Schema.optionalKey; readonly author: Schema.optionalKey; readonly label: Schema.optionalKey; readonly createdAt: Schema.optionalKey; readonly rating: Schema.optionalKey; readonly text: Schema.String; }>]>>; readonly summary: Schema.optionalKey; readonly maxRating: Schema.optionalKey; readonly ratingCount: Schema.optionalKey; readonly classification: Schema.String; readonly categories: Schema.optionalKey>>; }>>; }>>; }>; type RentalGetRentalsOutputItem = typeof RentalGetRentalsOutputItemSchema.Type; export declare const RentalGetRentalsOutputSchema: Schema.$Array; readonly scope: Schema.optionalKey; readonly location: Schema.optionalKey>; readonly images: Schema.optionalKey; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; readonly altFallback: Schema.optionalKey>; }>>>; readonly address: Schema.optionalKey; readonly appendix: Schema.optionalKey; readonly postalcode: Schema.optionalKey; readonly city: Schema.optionalKey; readonly province: Schema.optionalKey; readonly country: Schema.optionalKey; }>>; readonly capacity: Schema.optionalKey; readonly maxAdults: Schema.optionalKey; readonly bedrooms: Schema.optionalKey; readonly bathrooms: Schema.optionalKey; readonly rooms: Schema.optionalKey; readonly livingAreaSqm: Schema.optionalKey; }>>; readonly description: Schema.optionalKey; readonly headline: Schema.optionalKey; readonly description: Schema.optionalKey; readonly altDescription: Schema.optionalKey; readonly arrivalInfo: Schema.optionalKey; readonly departureInfo: Schema.optionalKey; readonly locationDescription: Schema.optionalKey; readonly directions: Schema.optionalKey; }>>; readonly descriptionFallbacks: Schema.optionalKey>; readonly headline: Schema.optionalKey>; readonly description: Schema.optionalKey>; readonly altDescription: Schema.optionalKey>; readonly arrivalInfo: Schema.optionalKey>; readonly departureInfo: Schema.optionalKey>; readonly locationDescription: Schema.optionalKey>; readonly directions: Schema.optionalKey>; }>>; readonly property: Schema.optionalKey; readonly location: Schema.optionalKey>; readonly images: Schema.optionalKey; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; readonly altFallback: Schema.optionalKey>; }>>>; readonly address: Schema.optionalKey; readonly appendix: Schema.optionalKey; readonly postalcode: Schema.optionalKey; readonly city: Schema.optionalKey; readonly province: Schema.optionalKey; readonly country: Schema.optionalKey; }>>; readonly description: Schema.optionalKey; readonly headline: Schema.optionalKey; readonly description: Schema.optionalKey; readonly altDescription: Schema.optionalKey; readonly arrivalInfo: Schema.optionalKey; readonly departureInfo: Schema.optionalKey; readonly locationDescription: Schema.optionalKey; readonly directions: Schema.optionalKey; }>>; readonly descriptionFallbacks: Schema.optionalKey>; readonly headline: Schema.optionalKey>; readonly description: Schema.optionalKey>; readonly altDescription: Schema.optionalKey>; readonly arrivalInfo: Schema.optionalKey>; readonly departureInfo: Schema.optionalKey>; readonly locationDescription: Schema.optionalKey>; readonly directions: Schema.optionalKey>; }>>; readonly attributes: Schema.optionalKey; readonly facts: Schema.optionalKey>; }>>>; }>>; }>>>; readonly vicinity: Schema.optionalKey; readonly facts: Schema.optionalKey>; }>>>; }>>>; readonly highlights: Schema.optionalKey>; readonly highlightFacts: Schema.optionalKey>; }>>>; }>>; readonly rooms: Schema.optionalKey; readonly description: Schema.optionalKey; readonly descriptionFallback: Schema.optionalKey>; readonly attributes: Schema.optionalKey>; readonly attributeFacts: Schema.optionalKey>; }>>>; readonly beds: Schema.optionalKey; readonly attributes: Schema.optionalKey>; }>>>; }>>>; readonly roomSummary: Schema.optionalKey>; readonly attributes: Schema.optionalKey; readonly facts: Schema.optionalKey>; }>>>; }>>; }>>>; readonly vicinity: Schema.optionalKey; readonly facts: Schema.optionalKey>; }>>>; }>>>; readonly highlights: Schema.optionalKey>; /** `highlights` with their keys and values: same order, same length. */ readonly highlightFacts: Schema.optionalKey>; }>>>; readonly reviews: Schema.optionalKey; readonly author: Schema.optionalKey; readonly label: Schema.optionalKey; readonly createdAt: Schema.optionalKey; readonly rating: Schema.String; readonly text: Schema.optionalKey; }>, Schema.Struct<{ readonly id: Schema.optionalKey; readonly author: Schema.optionalKey; readonly label: Schema.optionalKey; readonly createdAt: Schema.optionalKey; readonly rating: Schema.optionalKey; readonly text: Schema.String; }>]>>; readonly summary: Schema.optionalKey; readonly maxRating: Schema.optionalKey; readonly ratingCount: Schema.optionalKey; readonly classification: Schema.String; readonly categories: Schema.optionalKey>>; }>>; }>>; }>>; type RentalGetRentalsOutput = typeof RentalGetRentalsOutputSchema.Type; //#endregion //#region src/domain/rental/shared.d.ts /** * One item of an attribute list, vicinity group, highlight list or room, with what it states: * `key` is the backend's attribute key (v10 naming on both backends where v10 has the * attribute), `text` the rendered line as in `items`, and `value` the backend's raw value — * `true` for a feature, a number for a count, a distance (meters) or an area (m²), an option's * key on v10. `key` and `value` do not change with the locale or with translations. */ export declare const RentalFactSchema: Schema.Struct<{ readonly key: Schema.String; readonly text: Schema.String; readonly value: Schema.optionalKey>; }>; type RentalFact = typeof RentalFactSchema.Type; export declare const RentalOrPropertyImageSchema: Schema.Struct<{ readonly idOrPath: Schema.String; readonly src: Schema.String; readonly srcset: Schema.String; readonly alt: Schema.optionalKey; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; /** Set when `alt` (and `title`) is in another language than requested, with that language. */ readonly altFallback: Schema.optionalKey>; }>; /** * The description fields served in another language than the requested one, with that language * ("de-DE"). A field in the requested language is not listed; the object is omitted when every * field is in the requested language. */ declare const RentalOrPropertyDescriptionFallbacksSchema: Schema.Struct<{ readonly intro: Schema.optionalKey>; readonly headline: Schema.optionalKey>; readonly description: Schema.optionalKey>; readonly altDescription: Schema.optionalKey>; readonly arrivalInfo: Schema.optionalKey>; readonly departureInfo: Schema.optionalKey>; readonly locationDescription: Schema.optionalKey>; readonly directions: Schema.optionalKey>; }>; type RentalOrPropertyDescriptionFallbacks = typeof RentalOrPropertyDescriptionFallbacksSchema.Type; /** * Counts and living area as numbers, independent of locale and translations. A value the * backend does not state, or states as 0, is omitted. */ export declare const RentalCapacitySchema: Schema.Struct<{ readonly maxGuests: Schema.optionalKey; readonly maxAdults: Schema.optionalKey; readonly bedrooms: Schema.optionalKey; readonly bathrooms: Schema.optionalKey; readonly rooms: Schema.optionalKey; readonly livingAreaSqm: Schema.optionalKey; }>; type RentalCapacity = typeof RentalCapacitySchema.Type; //#endregion //#region src/domain/rental/get-details-by-ids.d.ts export declare const RentalGetDetailsByIdsInputSchema: Schema.Struct<{ readonly locale: Schema.Literals; readonly rentalIds: Schema.$Array; }>; type RentalGetDetailsByIdsInput = typeof RentalGetDetailsByIdsInputSchema.Type; export declare const RentalAttributeTextSchema: Schema.Struct<{ readonly label: Schema.String; readonly text: Schema.String; }>; type RentalAttributeText = typeof RentalAttributeTextSchema.Type; export declare const RentalDetailSchema: Schema.Struct<{ readonly id: Schema.String; readonly nameOrLabel: Schema.String; readonly timeZone: Schema.String; readonly rentalType: Schema.optionalKey; readonly scope: Schema.optionalKey; readonly location: Schema.optionalKey>; readonly images: Schema.optionalKey; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; readonly altFallback: Schema.optionalKey>; }>>>; readonly address: Schema.optionalKey; readonly appendix: Schema.optionalKey; readonly postalcode: Schema.optionalKey; readonly city: Schema.optionalKey; readonly province: Schema.optionalKey; readonly country: Schema.optionalKey; }>>; readonly capacity: Schema.optionalKey; readonly maxAdults: Schema.optionalKey; readonly bedrooms: Schema.optionalKey; readonly bathrooms: Schema.optionalKey; readonly rooms: Schema.optionalKey; readonly livingAreaSqm: Schema.optionalKey; }>>; readonly description: Schema.optionalKey; readonly headline: Schema.optionalKey; readonly description: Schema.optionalKey; readonly altDescription: Schema.optionalKey; readonly arrivalInfo: Schema.optionalKey; readonly departureInfo: Schema.optionalKey; readonly locationDescription: Schema.optionalKey; readonly directions: Schema.optionalKey; }>>; readonly descriptionFallbacks: Schema.optionalKey>; readonly headline: Schema.optionalKey>; readonly description: Schema.optionalKey>; readonly altDescription: Schema.optionalKey>; readonly arrivalInfo: Schema.optionalKey>; readonly departureInfo: Schema.optionalKey>; readonly locationDescription: Schema.optionalKey>; readonly directions: Schema.optionalKey>; }>>; readonly property: Schema.optionalKey; readonly location: Schema.optionalKey>; readonly images: Schema.optionalKey; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; readonly altFallback: Schema.optionalKey>; }>>>; readonly address: Schema.optionalKey; readonly appendix: Schema.optionalKey; readonly postalcode: Schema.optionalKey; readonly city: Schema.optionalKey; readonly province: Schema.optionalKey; readonly country: Schema.optionalKey; }>>; readonly description: Schema.optionalKey; readonly headline: Schema.optionalKey; readonly description: Schema.optionalKey; readonly altDescription: Schema.optionalKey; readonly arrivalInfo: Schema.optionalKey; readonly departureInfo: Schema.optionalKey; readonly locationDescription: Schema.optionalKey; readonly directions: Schema.optionalKey; }>>; readonly descriptionFallbacks: Schema.optionalKey>; readonly headline: Schema.optionalKey>; readonly description: Schema.optionalKey>; readonly altDescription: Schema.optionalKey>; readonly arrivalInfo: Schema.optionalKey>; readonly departureInfo: Schema.optionalKey>; readonly locationDescription: Schema.optionalKey>; readonly directions: Schema.optionalKey>; }>>; readonly attributes: Schema.optionalKey; readonly facts: Schema.optionalKey>; }>>>; }>>; }>>>; readonly vicinity: Schema.optionalKey; readonly facts: Schema.optionalKey>; }>>>; }>>>; readonly highlights: Schema.optionalKey>; readonly highlightFacts: Schema.optionalKey>; }>>>; }>>; readonly rooms: Schema.optionalKey; readonly description: Schema.optionalKey; readonly descriptionFallback: Schema.optionalKey>; readonly attributes: Schema.optionalKey>; readonly attributeFacts: Schema.optionalKey>; }>>>; readonly beds: Schema.optionalKey; readonly attributes: Schema.optionalKey>; }>>>; }>>>; readonly roomSummary: Schema.optionalKey>; readonly attributes: Schema.optionalKey; readonly facts: Schema.optionalKey>; }>>>; }>>; }>>>; readonly vicinity: Schema.optionalKey; readonly facts: Schema.optionalKey>; }>>>; }>>>; readonly highlights: Schema.optionalKey>; readonly highlightFacts: Schema.optionalKey>; }>>>; readonly reviews: Schema.optionalKey; readonly author: Schema.optionalKey; readonly label: Schema.optionalKey; readonly createdAt: Schema.optionalKey; readonly rating: Schema.String; readonly text: Schema.optionalKey; }>, Schema.Struct<{ readonly id: Schema.optionalKey; readonly author: Schema.optionalKey; readonly label: Schema.optionalKey; readonly createdAt: Schema.optionalKey; readonly rating: Schema.optionalKey; readonly text: Schema.String; }>]>>; readonly summary: Schema.optionalKey; readonly maxRating: Schema.optionalKey; readonly ratingCount: Schema.optionalKey; readonly classification: Schema.String; readonly categories: Schema.optionalKey>>; }>>; }>>; readonly attributeTexts: Schema.optionalKey>>; }>; type RentalDetail = typeof RentalDetailSchema.Type; export declare const RentalGetDetailsByIdsOutputSchema: Schema.$Array; readonly scope: Schema.optionalKey; readonly location: Schema.optionalKey>; readonly images: Schema.optionalKey; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; readonly altFallback: Schema.optionalKey>; }>>>; readonly address: Schema.optionalKey; readonly appendix: Schema.optionalKey; readonly postalcode: Schema.optionalKey; readonly city: Schema.optionalKey; readonly province: Schema.optionalKey; readonly country: Schema.optionalKey; }>>; readonly capacity: Schema.optionalKey; readonly maxAdults: Schema.optionalKey; readonly bedrooms: Schema.optionalKey; readonly bathrooms: Schema.optionalKey; readonly rooms: Schema.optionalKey; readonly livingAreaSqm: Schema.optionalKey; }>>; readonly description: Schema.optionalKey; readonly headline: Schema.optionalKey; readonly description: Schema.optionalKey; readonly altDescription: Schema.optionalKey; readonly arrivalInfo: Schema.optionalKey; readonly departureInfo: Schema.optionalKey; readonly locationDescription: Schema.optionalKey; readonly directions: Schema.optionalKey; }>>; readonly descriptionFallbacks: Schema.optionalKey>; readonly headline: Schema.optionalKey>; readonly description: Schema.optionalKey>; readonly altDescription: Schema.optionalKey>; readonly arrivalInfo: Schema.optionalKey>; readonly departureInfo: Schema.optionalKey>; readonly locationDescription: Schema.optionalKey>; readonly directions: Schema.optionalKey>; }>>; readonly property: Schema.optionalKey; readonly location: Schema.optionalKey>; readonly images: Schema.optionalKey; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; readonly altFallback: Schema.optionalKey>; }>>>; readonly address: Schema.optionalKey; readonly appendix: Schema.optionalKey; readonly postalcode: Schema.optionalKey; readonly city: Schema.optionalKey; readonly province: Schema.optionalKey; readonly country: Schema.optionalKey; }>>; readonly description: Schema.optionalKey; readonly headline: Schema.optionalKey; readonly description: Schema.optionalKey; readonly altDescription: Schema.optionalKey; readonly arrivalInfo: Schema.optionalKey; readonly departureInfo: Schema.optionalKey; readonly locationDescription: Schema.optionalKey; readonly directions: Schema.optionalKey; }>>; readonly descriptionFallbacks: Schema.optionalKey>; readonly headline: Schema.optionalKey>; readonly description: Schema.optionalKey>; readonly altDescription: Schema.optionalKey>; readonly arrivalInfo: Schema.optionalKey>; readonly departureInfo: Schema.optionalKey>; readonly locationDescription: Schema.optionalKey>; readonly directions: Schema.optionalKey>; }>>; readonly attributes: Schema.optionalKey; readonly facts: Schema.optionalKey>; }>>>; }>>; }>>>; readonly vicinity: Schema.optionalKey; readonly facts: Schema.optionalKey>; }>>>; }>>>; readonly highlights: Schema.optionalKey>; readonly highlightFacts: Schema.optionalKey>; }>>>; }>>; readonly rooms: Schema.optionalKey; readonly description: Schema.optionalKey; readonly descriptionFallback: Schema.optionalKey>; readonly attributes: Schema.optionalKey>; readonly attributeFacts: Schema.optionalKey>; }>>>; readonly beds: Schema.optionalKey; readonly attributes: Schema.optionalKey>; }>>>; }>>>; readonly roomSummary: Schema.optionalKey>; readonly attributes: Schema.optionalKey; readonly facts: Schema.optionalKey>; }>>>; }>>; }>>>; readonly vicinity: Schema.optionalKey; readonly facts: Schema.optionalKey>; }>>>; }>>>; readonly highlights: Schema.optionalKey>; readonly highlightFacts: Schema.optionalKey>; }>>>; readonly reviews: Schema.optionalKey; readonly author: Schema.optionalKey; readonly label: Schema.optionalKey; readonly createdAt: Schema.optionalKey; readonly rating: Schema.String; readonly text: Schema.optionalKey; }>, Schema.Struct<{ readonly id: Schema.optionalKey; readonly author: Schema.optionalKey; readonly label: Schema.optionalKey; readonly createdAt: Schema.optionalKey; readonly rating: Schema.optionalKey; readonly text: Schema.String; }>]>>; readonly summary: Schema.optionalKey; readonly maxRating: Schema.optionalKey; readonly ratingCount: Schema.optionalKey; readonly classification: Schema.String; readonly categories: Schema.optionalKey>>; }>>; }>>; readonly attributeTexts: Schema.optionalKey>>; }>>; type RentalGetDetailsByIdsOutput = typeof RentalGetDetailsByIdsOutputSchema.Type; //#endregion //#region src/domain/search/search-input.d.ts export declare const SearchSearchInputSchema: Schema.Struct<{ readonly locale: Schema.Literals; readonly query: Schema.String; readonly sort: Schema.optionalKey; readonly direction: Schema.Literals; }>, Schema.Struct<{ readonly by: Schema.Literal<"random">; }>, Schema.Struct<{ readonly by: Schema.Literal<"rating">; }>, Schema.Struct<{ readonly by: Schema.Literal<"field">; readonly orderBy: Schema.Struct<{ readonly label: Schema.optionalKey>; readonly name: Schema.optionalKey>; readonly roomSummary: Schema.optionalKey>; readonly bedrooms: Schema.optionalKey>; readonly livingrooms: Schema.optionalKey>; readonly maxAdults: Schema.optionalKey>; readonly maxPersons: Schema.optionalKey>; readonly rooms: Schema.optionalKey>; }>>; readonly attributes: Schema.optionalKey>; }>>; readonly vicinity: Schema.optionalKey>; readonly citydistance: Schema.optionalKey>; }>>; }>; }>]>>; readonly rentalIdsIn: Schema.optionalKey>; readonly voucher: Schema.optionalKey; readonly limit: Schema.optionalKey; readonly cursor: Schema.optionalKey; }>; type SearchSearchInput = typeof SearchSearchInputSchema.Type; /** The most results a `searchAllRentalsAtOnce` search returns; above it the search fails. */ export declare const SEARCH_ALL_RENTALS_AT_ONCE_MAX_RESULTS = 100; /** `search` input with `searchAllRentalsAtOnce`: every result in one call, so no `cursor` or `limit`. */ type SearchAllRentalsAtOnceInput = Omit & { readonly cursor?: never; readonly limit?: never; }; export declare const SearchMapSearchInputSchema: Schema.Struct<{ readonly locale: Schema.Literals; readonly query: Schema.String; }>; type SearchMapSearchInput = typeof SearchMapSearchInputSchema.Type; //#endregion //#region src/domain/search/search-sort.d.ts export declare const SearchSortDirectionSchema: Schema.Literals; type SearchSortDirection = typeof SearchSortDirectionSchema.Type; export declare const SearchSearchFieldOrderBySchema: Schema.Struct<{ readonly label: Schema.optionalKey>; readonly name: Schema.optionalKey>; readonly roomSummary: Schema.optionalKey>; readonly bedrooms: Schema.optionalKey>; readonly livingrooms: Schema.optionalKey>; readonly maxAdults: Schema.optionalKey>; readonly maxPersons: Schema.optionalKey>; readonly rooms: Schema.optionalKey>; }>>; readonly attributes: Schema.optionalKey>; }>>; readonly vicinity: Schema.optionalKey>; readonly citydistance: Schema.optionalKey>; }>>; }>; type SearchSearchFieldOrderBy = typeof SearchSearchFieldOrderBySchema.Type; export declare const SearchSearchPriceSortSchema: Schema.Struct<{ readonly by: Schema.Literal<"price">; readonly direction: Schema.Literals; }>; type SearchSearchPriceSort = typeof SearchSearchPriceSortSchema.Type; export declare const SearchSearchRandomSortSchema: Schema.Struct<{ readonly by: Schema.Literal<"random">; }>; type SearchSearchRandomSort = typeof SearchSearchRandomSortSchema.Type; export declare const SearchSearchRatingSortSchema: Schema.Struct<{ readonly by: Schema.Literal<"rating">; }>; type SearchSearchRatingSort = typeof SearchSearchRatingSortSchema.Type; export declare const SearchSearchFieldSortSchema: Schema.Struct<{ readonly by: Schema.Literal<"field">; readonly orderBy: Schema.Struct<{ readonly label: Schema.optionalKey>; readonly name: Schema.optionalKey>; readonly roomSummary: Schema.optionalKey>; readonly bedrooms: Schema.optionalKey>; readonly livingrooms: Schema.optionalKey>; readonly maxAdults: Schema.optionalKey>; readonly maxPersons: Schema.optionalKey>; readonly rooms: Schema.optionalKey>; }>>; readonly attributes: Schema.optionalKey>; }>>; readonly vicinity: Schema.optionalKey>; readonly citydistance: Schema.optionalKey>; }>>; }>; }>; type SearchSearchFieldSort = typeof SearchSearchFieldSortSchema.Type; export declare const SearchSearchSortSchema: Schema.Union; readonly direction: Schema.Literals; }>, Schema.Struct<{ readonly by: Schema.Literal<"random">; }>, Schema.Struct<{ readonly by: Schema.Literal<"rating">; }>, Schema.Struct<{ readonly by: Schema.Literal<"field">; readonly orderBy: Schema.Struct<{ readonly label: Schema.optionalKey>; readonly name: Schema.optionalKey>; readonly roomSummary: Schema.optionalKey>; readonly bedrooms: Schema.optionalKey>; readonly livingrooms: Schema.optionalKey>; readonly maxAdults: Schema.optionalKey>; readonly maxPersons: Schema.optionalKey>; readonly rooms: Schema.optionalKey>; }>>; readonly attributes: Schema.optionalKey>; }>>; readonly vicinity: Schema.optionalKey>; readonly citydistance: Schema.optionalKey>; }>>; }>; }>]>; type SearchSearchSort = typeof SearchSearchSortSchema.Type; //#endregion //#region src/domain/search/search-output.d.ts /** `Money`, under the name search outputs exported it by before `Money` existed. */ export declare const SearchMoneySchema: Schema.Struct<{ readonly amount: Schema.Number; readonly currency: Schema.String; }>; type SearchMoney = typeof SearchMoneySchema.Type; export declare const SearchSearchOutputItemSchema: Schema.Struct<{ readonly id: Schema.String; readonly nameOrLabel: Schema.String; readonly timeZone: Schema.String; readonly rentalType: Schema.optionalKey; readonly scope: Schema.optionalKey; readonly location: Schema.optionalKey>; readonly images: Schema.optionalKey; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; readonly altFallback: Schema.optionalKey>; }>>>; readonly address: Schema.optionalKey; readonly appendix: Schema.optionalKey; readonly postalcode: Schema.optionalKey; readonly city: Schema.optionalKey; readonly province: Schema.optionalKey; readonly country: Schema.optionalKey; }>>; readonly capacity: Schema.optionalKey; readonly maxAdults: Schema.optionalKey; readonly bedrooms: Schema.optionalKey; readonly bathrooms: Schema.optionalKey; readonly rooms: Schema.optionalKey; readonly livingAreaSqm: Schema.optionalKey; }>>; readonly formattedTotal: Schema.optionalKey; readonly total: Schema.optionalKey>; readonly discount: Schema.optionalKey>; readonly applied: Schema.$Array>; /** * The backend's discount type (v10: `EARLY_BIRD`, `LAST_MINUTE`, …), the same in every * locale; `label` is its translation. v9 states no type. */ readonly type: Schema.optionalKey; }>>; }>>; readonly highlights: Schema.optionalKey>; /** `highlights` with their keys and values: same order, same length. */ readonly highlightFacts: Schema.optionalKey>; }>>>; readonly property: Schema.optionalKey; readonly location: Schema.optionalKey>; readonly images: Schema.optionalKey; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; readonly altFallback: Schema.optionalKey>; }>>>; readonly address: Schema.optionalKey; readonly appendix: Schema.optionalKey; readonly postalcode: Schema.optionalKey; readonly city: Schema.optionalKey; readonly province: Schema.optionalKey; readonly country: Schema.optionalKey; }>>; }>>; }>; type SearchSearchOutputItem = typeof SearchSearchOutputItemSchema.Type; export declare const SearchSearchAlternativeSchema: Schema.Struct<{ readonly item: Schema.Struct<{ readonly id: Schema.String; readonly nameOrLabel: Schema.String; readonly timeZone: Schema.String; readonly rentalType: Schema.optionalKey; readonly scope: Schema.optionalKey; readonly location: Schema.optionalKey>; readonly images: Schema.optionalKey; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; readonly altFallback: Schema.optionalKey>; }>>>; readonly address: Schema.optionalKey; readonly appendix: Schema.optionalKey; readonly postalcode: Schema.optionalKey; readonly city: Schema.optionalKey; readonly province: Schema.optionalKey; readonly country: Schema.optionalKey; }>>; readonly capacity: Schema.optionalKey; readonly maxAdults: Schema.optionalKey; readonly bedrooms: Schema.optionalKey; readonly bathrooms: Schema.optionalKey; readonly rooms: Schema.optionalKey; readonly livingAreaSqm: Schema.optionalKey; }>>; readonly formattedTotal: Schema.optionalKey; readonly total: Schema.optionalKey>; readonly discount: Schema.optionalKey>; readonly applied: Schema.$Array>; /** * The backend's discount type (v10: `EARLY_BIRD`, `LAST_MINUTE`, …), the same in every * locale; `label` is its translation. v9 states no type. */ readonly type: Schema.optionalKey; }>>; }>>; readonly highlights: Schema.optionalKey>; /** `highlights` with their keys and values: same order, same length. */ readonly highlightFacts: Schema.optionalKey>; }>>>; readonly property: Schema.optionalKey; readonly location: Schema.optionalKey>; readonly images: Schema.optionalKey; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; readonly altFallback: Schema.optionalKey>; }>>>; readonly address: Schema.optionalKey; readonly appendix: Schema.optionalKey; readonly postalcode: Schema.optionalKey; readonly city: Schema.optionalKey; readonly province: Schema.optionalKey; readonly country: Schema.optionalKey; }>>; }>>; }>; readonly alternativePeriods: Schema.$Array; readonly total: Schema.optionalKey>; readonly discount: Schema.optionalKey>; readonly applied: Schema.$Array>; /** * The backend's discount type (v10: `EARLY_BIRD`, `LAST_MINUTE`, …), the same in every * locale; `label` is its translation. v9 states no type. */ readonly type: Schema.optionalKey; }>>; }>>; readonly start: Schema.String; readonly end: Schema.String; }>>; }>; type SearchSearchAlternative = typeof SearchSearchAlternativeSchema.Type; export declare const SearchSearchAppliedFilterSchema: Schema.Struct<{ readonly key: Schema.String; readonly label: Schema.String; /** * The applied value, for filters that carry one. A label is presentation and can * repeat, so it cannot tell a consumer which of several values on one key to * remove. Absent for on/off filters, where the key alone identifies them. */ readonly value: Schema.optionalKey; }>; type SearchSearchAppliedFilter = typeof SearchSearchAppliedFilterSchema.Type; export declare const SearchSearchOutputSchema: Schema.Struct<{ readonly items: Schema.$Array; readonly scope: Schema.optionalKey; readonly location: Schema.optionalKey>; readonly images: Schema.optionalKey; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; readonly altFallback: Schema.optionalKey>; }>>>; readonly address: Schema.optionalKey; readonly appendix: Schema.optionalKey; readonly postalcode: Schema.optionalKey; readonly city: Schema.optionalKey; readonly province: Schema.optionalKey; readonly country: Schema.optionalKey; }>>; readonly capacity: Schema.optionalKey; readonly maxAdults: Schema.optionalKey; readonly bedrooms: Schema.optionalKey; readonly bathrooms: Schema.optionalKey; readonly rooms: Schema.optionalKey; readonly livingAreaSqm: Schema.optionalKey; }>>; readonly formattedTotal: Schema.optionalKey; readonly total: Schema.optionalKey>; readonly discount: Schema.optionalKey>; readonly applied: Schema.$Array>; /** * The backend's discount type (v10: `EARLY_BIRD`, `LAST_MINUTE`, …), the same in every * locale; `label` is its translation. v9 states no type. */ readonly type: Schema.optionalKey; }>>; }>>; readonly highlights: Schema.optionalKey>; /** `highlights` with their keys and values: same order, same length. */ readonly highlightFacts: Schema.optionalKey>; }>>>; readonly property: Schema.optionalKey; readonly location: Schema.optionalKey>; readonly images: Schema.optionalKey; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; readonly altFallback: Schema.optionalKey>; }>>>; readonly address: Schema.optionalKey; readonly appendix: Schema.optionalKey; readonly postalcode: Schema.optionalKey; readonly city: Schema.optionalKey; readonly province: Schema.optionalKey; readonly country: Schema.optionalKey; }>>; }>>; }>>; readonly alternatives: Schema.optionalKey; readonly scope: Schema.optionalKey; readonly location: Schema.optionalKey>; readonly images: Schema.optionalKey; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; readonly altFallback: Schema.optionalKey>; }>>>; readonly address: Schema.optionalKey; readonly appendix: Schema.optionalKey; readonly postalcode: Schema.optionalKey; readonly city: Schema.optionalKey; readonly province: Schema.optionalKey; readonly country: Schema.optionalKey; }>>; readonly capacity: Schema.optionalKey; readonly maxAdults: Schema.optionalKey; readonly bedrooms: Schema.optionalKey; readonly bathrooms: Schema.optionalKey; readonly rooms: Schema.optionalKey; readonly livingAreaSqm: Schema.optionalKey; }>>; readonly formattedTotal: Schema.optionalKey; readonly total: Schema.optionalKey>; readonly discount: Schema.optionalKey>; readonly applied: Schema.$Array>; /** * The backend's discount type (v10: `EARLY_BIRD`, `LAST_MINUTE`, …), the same in every * locale; `label` is its translation. v9 states no type. */ readonly type: Schema.optionalKey; }>>; }>>; readonly highlights: Schema.optionalKey>; /** `highlights` with their keys and values: same order, same length. */ readonly highlightFacts: Schema.optionalKey>; }>>>; readonly property: Schema.optionalKey; readonly location: Schema.optionalKey>; readonly images: Schema.optionalKey; readonly title: Schema.optionalKey; readonly category: Schema.optionalKey; readonly metadata: Schema.optionalKey>; readonly altFallback: Schema.optionalKey>; }>>>; readonly address: Schema.optionalKey; readonly appendix: Schema.optionalKey; readonly postalcode: Schema.optionalKey; readonly city: Schema.optionalKey; readonly province: Schema.optionalKey; readonly country: Schema.optionalKey; }>>; }>>; }>; readonly alternativePeriods: Schema.$Array; readonly total: Schema.optionalKey>; readonly discount: Schema.optionalKey>; readonly applied: Schema.$Array>; /** * The backend's discount type (v10: `EARLY_BIRD`, `LAST_MINUTE`, …), the same in every * locale; `label` is its translation. v9 states no type. */ readonly type: Schema.optionalKey; }>>; }>>; readonly start: Schema.String; readonly end: Schema.String; }>>; }>>>; readonly appliedFilters: Schema.$Array; }>>; readonly unusedFilterKeys: Schema.$Array; readonly pageInfo: Schema.Struct<{ readonly hasNextPage: Schema.Boolean; readonly nextCursor: Schema.optionalKey; /** Number of rentals the backend matched for this search, over all pages. */ readonly totalCount: Schema.Number; }>; }>; type SearchSearchOutput = typeof SearchSearchOutputSchema.Type; export declare const SearchMapSearchOutputItemSchema: Schema.Struct<{ readonly id: Schema.String; readonly location: Schema.optionalKey>; }>; type SearchMapSearchOutputItem = typeof SearchMapSearchOutputItemSchema.Type; export declare const SearchMapSearchOutputSchema: Schema.Struct<{ /** Every rental the search matches, without prices. */ readonly items: Schema.$Array>; }>>; readonly totalCount: Schema.Number; readonly appliedFilters: Schema.$Array; }>>; readonly unusedFilterKeys: Schema.$Array; }>; type SearchMapSearchOutput = typeof SearchMapSearchOutputSchema.Type; //#endregion //#region src/domain/shared/amount.d.ts export declare const NonNegativeAmountSchema: Schema.Number; export declare const NonNegativeQuantitySchema: Schema.Int; export declare const PositiveQuantitySchema: Schema.Int; //#endregion //#region src/domain/shared/format-currency.d.ts export declare const formatCurrency: (amount: number, locale: Locale, currency: string) => string; //#endregion //#region src/domain/shared/format-percentage.d.ts export declare const formatPercentage: (value: number, locale: Locale) => string; //#endregion //#region src/domain/shared/money.d.ts /** A price as a number: `amount` in the currency's minor unit (cents for EUR), as the backend sends it. */ export declare const MoneySchema: Schema.Struct<{ readonly amount: Schema.Number; readonly currency: Schema.String; }>; type Money = typeof MoneySchema.Type; //#endregion //#region src/domain/shared/local-date.d.ts export declare const daysBetweenLocalDates: ({ start, end }: { readonly start: LocalDateString; readonly end: LocalDateString; }) => number; //#endregion //#region src/domain/shared/night-count.d.ts export declare const toNightCount: ({ start, end }: { readonly start: LocalDateString; readonly end: LocalDateString; }) => number; //#endregion //#region src/config/custom-attribute-filter-definition.d.ts /** Category keys are limited to the generated v10 filter categories. */ type CustomAttributeFilterCategoryKey = (typeof GENERATED_SEARCH_FILTER_CATEGORY_KEYS)[number]; /** Localized text shown for filters and options. */ type CustomAttributeFilterLabel = Record; type LocalizedLabel = CustomAttributeFilterLabel; /** Optional numeric hint for UI controls. */ type CustomAttributeFilterNumericBounds = { readonly min?: number; readonly max?: number; }; /** One selectable option for an option filter. */ type CustomAttributeFilterOption = { readonly value: string; readonly label: CustomAttributeFilterLabel; }; type NonEmptyReadonlyArray = readonly [Value, ...Value[]]; /** * Boolean expression used by composition filters. * * Deliberately limited to equality leaves combined with `all`. `gte`/`lte` and an * `any` branch were previously part of this type but neither was implemented: * expansion dropped the operator and executed equality instead, and `any` left the * key unused. Both are removed rather than validated, so an unsupported expression * cannot be written in the first place. */ type CustomAttributeFilterExpression = { /** References another filter by key. */ readonly filter: string; readonly value: boolean | number | string; } | { readonly all: NonEmptyReadonlyArray; }; type PublicFilterVisibility = { /** Backend filters and compositions are always search filters. */ readonly searchable: true; /** * Internal filters can be used by search and compositions, but should not be * exposed through the public getFilters output. */ readonly internal: boolean; }; type CustomAttributeFilterDefinitionBase = { /** Query-string key and expression reference key. */ readonly key: string; readonly category: CustomAttributeFilterCategoryKey; readonly label: CustomAttributeFilterLabel; }; type BooleanFilterDefinition = CustomAttributeFilterDefinitionBase & { readonly type: "boolean"; }; type IntFilterDefinition = CustomAttributeFilterDefinitionBase & { readonly type: "int"; readonly numericBounds: CustomAttributeFilterNumericBounds; }; type StringFilterDefinition = CustomAttributeFilterDefinitionBase & { readonly type: "string"; }; type OptionFilterDefinition = CustomAttributeFilterDefinitionBase & { readonly type: "option"; readonly options: NonEmptyReadonlyArray; }; type BackendSearchFilterDefinition = (BooleanFilterDefinition | IntFilterDefinition | StringFilterDefinition | OptionFilterDefinition) & { /** Backed by backend-defined filter keys, mainly v9 hub filters. */ readonly source: "backendFilter"; } & PublicFilterVisibility; /** Filter that expands to other filters instead of being sent directly. */ type CompositionAttributeFilterDefinition = CustomAttributeFilterDefinitionBase & PublicFilterVisibility & { readonly source: "composition"; readonly type: "complex"; readonly expression: CustomAttributeFilterExpression; }; /** * Backend and composed filters configured by SDK users. * * Custom attributes are no longer part of this union: they come from * `defineCustomAttributes`, which joins them against the workspace catalog. What * remains here are the two concepts that are not custom attributes — a * backend-native search key and a virtual filter that expands into other filters. */ type CustomAttributeFilterDefinition = BackendSearchFilterDefinition | CompositionAttributeFilterDefinition; /** Runtime guard for externally supplied category keys. */ export declare const isCustomAttributeFilterCategoryKey: (value: string) => value is CustomAttributeFilterCategoryKey; //#endregion //#region src/codegen/v10/metadata/property-metadata.d.ts declare const GENERATED_PROPERTY_METADATA_CATALOG: { readonly attributes: readonly [{ readonly key: "ac"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.ac.label"; }, { readonly key: "accessToHealthcareProfessional"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.accessToHealthcareProfessional.label"; }, { readonly key: "adultOnly"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.adultOnly.label"; }, { readonly key: "airportDropoff"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.airportDropoff.label"; }, { readonly key: "airportPickup"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.airportPickup.label"; }, { readonly key: "airportShuttle"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.airportShuttle.label"; }, { readonly key: "alarmSystem"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.alarmSystem.label"; }, { readonly key: "aquaPark"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.aquaPark.label"; }, { readonly key: "atmOnSite"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.atmOnSite.label"; }, { readonly key: "auditoryGuidance"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.auditoryGuidance.label"; }, { readonly key: "babygate"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.babygate.label"; }, { readonly key: "babysittingChildServices"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.babysittingChildServices.label"; }, { readonly key: "backMassage"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.backMassage.label"; }, { readonly key: "badmintonEquipment"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.badmintonEquipment.label"; }, { readonly key: "bar"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.bar.label"; }, { readonly key: "bbqFacilities"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.bbqFacilities.label"; }, { readonly key: "beachChairLoungers"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.beachChairLoungers.label"; }, { readonly key: "beachUmbrellas"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.beachUmbrellas.label"; }, { readonly key: "beautyServices"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.beautyServices.label"; }, { readonly key: "bicycleParking"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.bicycleParking.label"; }, { readonly key: "bicycleRental"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.bicycleRental.label"; }, { readonly key: "bodyScrub"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.bodyScrub.label"; }, { readonly key: "bodyTreatments"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.bodyTreatments.label"; }, { readonly key: "bodyWrap"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.bodyWrap.label"; }, { readonly key: "bottleOfWater"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.bottleOfWater.label"; }, { readonly key: "breakfastAvailable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.breakfastAvailable.label"; }, { readonly key: "breakfastDetails"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "value_label"; readonly labelKey: "PropertyAttributes.breakfastDetails.label"; }, { readonly key: "breakfastInRoom"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.breakfastInRoom.label"; }, { readonly key: "breakfastTakeawayAvailable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.breakfastTakeawayAvailable.label"; }, { readonly key: "bridalSuiteAvailable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.bridalSuiteAvailable.label"; }, { readonly key: "businessCenter"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.businessCenter.label"; }, { readonly key: "carbonMonoxideDetector"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.carbonMonoxideDetector.label"; }, { readonly key: "carbonMonoxideSource"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.carbonMonoxideSource.label"; }, { readonly key: "carRental"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.carRental.label"; }, { readonly key: "cashlessPaymentAvailable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.cashlessPaymentAvailable.label"; }, { readonly key: "casino"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.casino.label"; }, { readonly key: "cctvSecurity"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.cctvSecurity.label"; }, { readonly key: "chapelShrine"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.chapelShrine.label"; }, { readonly key: "childFriendlyBuffet"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.childFriendlyBuffet.label"; }, { readonly key: "childrenLibrary"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.childrenLibrary.label"; }, { readonly key: "childrenTvNetworks"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.childrenTvNetworks.label"; }, { readonly key: "chocolateCookiesAvailable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.chocolateCookiesAvailable.label"; }, { readonly key: "coffeeShopOnsite"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.coffeeShopOnsite.label"; }, { readonly key: "communalKitchen"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.communalKitchen.label"; }, { readonly key: "communalLoungeTvRoom"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.communalLoungeTvRoom.label"; }, { readonly key: "conciergeService"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.conciergeService.label"; }, { readonly key: "constructionDate"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "value_label"; readonly labelKey: "PropertyAttributes.constructionDate.label"; }, { readonly key: "contactlessCheckinAvailable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.contactlessCheckinAvailable.label"; }, { readonly key: "couplesMassage"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.couplesMassage.label"; }, { readonly key: "coveredFoodDelivery"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.coveredFoodDelivery.label"; }, { readonly key: "currencyExchange"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.currencyExchange.label"; }, { readonly key: "dailyMaidService"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.dailyMaidService.label"; }, { readonly key: "darts"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.darts.label"; }, { readonly key: "designatedSmokingArea"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.designatedSmokingArea.label"; }, { readonly key: "dinnerAvailable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.dinnerAvailable.label"; }, { readonly key: "directDialTelephone"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.directDialTelephone.label"; }, { readonly key: "dryCleaning"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.dryCleaning.label"; }, { readonly key: "dryer"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.dryer.label"; }, { readonly key: "emergencyCord"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.emergencyCord.label"; }, { readonly key: "entertainmentStaff"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.entertainmentStaff.label"; }, { readonly key: "eveningEntertainment"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.eveningEntertainment.label"; }, { readonly key: "expressCheckinCheckout"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.expressCheckinCheckout.label"; }, { readonly key: "facialTreatments"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.facialTreatments.label"; }, { readonly key: "familyRoomsAvailable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.familyRoomsAvailable.label"; }, { readonly key: "fireExtinguisher"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.fireExtinguisher.label"; }, { readonly key: "fireplace"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.fireplace.label"; }, { readonly key: "fireside"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.fireside.label"; }, { readonly key: "firstAidKit"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.firstAidKit.label"; }, { readonly key: "fitnessClasses"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.fitnessClasses.label"; }, { readonly key: "footBath"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.footBath.label"; }, { readonly key: "footMassage"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.footMassage.label"; }, { readonly key: "freeBikesAvailable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.freeBikesAvailable.label"; }, { readonly key: "freeFaceMasksAvailable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.freeFaceMasksAvailable.label"; }, { readonly key: "fruitsAvailable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.fruitsAvailable.label"; }, { readonly key: "fullBodyMassage"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.fullBodyMassage.label"; }, { readonly key: "gameRoom"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.gameRoom.label"; }, { readonly key: "games"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.games.label"; }, { readonly key: "garden"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.garden.label"; }, { readonly key: "gayFriendly"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.gayFriendly.label"; }, { readonly key: "groceryDeliveries"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.groceryDeliveries.label"; }, { readonly key: "gym"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.gym.label"; }, { readonly key: "hairColouring"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.hairColouring.label"; }, { readonly key: "hairCut"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.hairCut.label"; }, { readonly key: "hairDresserBeautician"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.hairDresserBeautician.label"; }, { readonly key: "hairStyling"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.hairStyling.label"; }, { readonly key: "hairTreatments"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.hairTreatments.label"; }, { readonly key: "handicappedAccessible"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.handicappedAccessible.label"; }, { readonly key: "handMassage"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.handMassage.label"; }, { readonly key: "handSanitizerAvailable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.handSanitizerAvailable.label"; }, { readonly key: "headMassage"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.headMassage.label"; }, { readonly key: "heating"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.heating.label"; }, { readonly key: "higherLevelToilet"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.higherLevelToilet.label"; }, { readonly key: "hotSpringBath"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.hotSpringBath.label"; }, { readonly key: "indoorPlayArea"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.indoorPlayArea.label"; }, { readonly key: "indoorPool"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.indoorPool.label"; }, { readonly key: "indoorPoolDetails"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "value_label"; readonly labelKey: "PropertyAttributes.indoorPoolDetails.label"; }, { readonly key: "internet"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.internet.label"; }, { readonly key: "invoicesProvided"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.invoicesProvided.label"; }, { readonly key: "ironingService"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.ironingService.label"; }, { readonly key: "karaoke"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.karaoke.label"; }, { readonly key: "keyAccessType"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_value"; readonly labelKey: "PropertyAttributes.keyAccessType.label"; readonly options: readonly [{ readonly value: "METAL"; readonly labelKey: "PropertyAttributes.keyAccessType.option.METAL"; }, { readonly value: "KEYLESS"; readonly labelKey: "PropertyAttributes.keyAccessType.option.KEYLESS"; }, { readonly value: "TRANSPONDER"; readonly labelKey: "PropertyAttributes.keyAccessType.option.TRANSPONDER"; }]; }, { readonly key: "kidMeals"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.kidMeals.label"; }, { readonly key: "kidsClub"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.kidsClub.label"; }, { readonly key: "lastRenovationDate"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "value_label"; readonly labelKey: "PropertyAttributes.lastRenovationDate.label"; }, { readonly key: "laundryService"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.laundryService.label"; }, { readonly key: "library"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.library.label"; }, { readonly key: "lift"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.lift.label"; }, { readonly key: "lightTherapy"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.lightTherapy.label"; }, { readonly key: "lockerRooms"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.lockerRooms.label"; }, { readonly key: "lockers"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.lockers.label"; }, { readonly key: "lowerBathroomSink"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.lowerBathroomSink.label"; }, { readonly key: "luggageStorage"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.luggageStorage.label"; }, { readonly key: "lunchAvailable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.lunchAvailable.label"; }, { readonly key: "makeUpServices"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.makeUpServices.label"; }, { readonly key: "manicure"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.manicure.label"; }, { readonly key: "massageChair"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.massageChair.label"; }, { readonly key: "massageService"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.massageService.label"; }, { readonly key: "meetingBanquetFacilities"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.meetingBanquetFacilities.label"; }, { readonly key: "miniGolf"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.miniGolf.label"; }, { readonly key: "neckMassage"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.neckMassage.label"; }, { readonly key: "newspapers"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.newspapers.label"; }, { readonly key: "nightclubDJ"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.nightclubDJ.label"; }, { readonly key: "openAirBath"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.openAirBath.label"; }, { readonly key: "outdoorFurniture"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.outdoorFurniture.label"; }, { readonly key: "outdoorPool"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.outdoorPool.label"; }, { readonly key: "outdoorPoolDetails"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "value_label"; readonly labelKey: "PropertyAttributes.outdoorPoolDetails.label"; }, { readonly key: "packedLunches"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.packedLunches.label"; }, { readonly key: "parking"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.parking.label"; }, { readonly key: "parkingDetails"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "value_label"; readonly labelKey: "PropertyAttributes.parkingDetails.label"; }, { readonly key: "pedicure"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.pedicure.label"; }, { readonly key: "personalTrainer"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.personalTrainer.label"; }, { readonly key: "petBasket"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.petBasket.label"; }, { readonly key: "petBowls"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.petBowls.label"; }, { readonly key: "picnicArea"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.picnicArea.label"; }, { readonly key: "playground"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.playground.label"; }, { readonly key: "pool4kids"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.pool4kids.label"; }, { readonly key: "pooltable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.pooltable.label"; }, { readonly key: "postalService"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.postalService.label"; }, { readonly key: "privateBeachArea"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.privateBeachArea.label"; }, { readonly key: "privateCheckinCheckout"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.privateCheckinCheckout.label"; }, { readonly key: "professionalCleaningServiceUsed"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.professionalCleaningServiceUsed.label"; }, { readonly key: "publicBath"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.publicBath.label"; }, { readonly key: "publicTransportTickets"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.publicTransportTickets.label"; }, { readonly key: "restaurant"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.restaurant.label"; }, { readonly key: "roomsDisinfectedBetweenStays"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.roomsDisinfectedBetweenStays.label"; }, { readonly key: "roomService"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.roomService.label"; }, { readonly key: "roomServiceAppAvailable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.roomServiceAppAvailable.label"; }, { readonly key: "roomsSealedAfterCleaning"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.roomsSealedAfterCleaning.label"; }, { readonly key: "safe"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.safe.label"; }, { readonly key: "sanitizedDinnerware"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.sanitizedDinnerware.label"; }, { readonly key: "sauna"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.sauna.label"; }, { readonly key: "shoeShine"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.shoeShine.label"; }, { readonly key: "shopsOnSite"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.shopsOnSite.label"; }, { readonly key: "skiEquipmentHire"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.skiEquipmentHire.label"; }, { readonly key: "skiPassVendor"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.skiPassVendor.label"; }, { readonly key: "skiSchool"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.skiSchool.label"; }, { readonly key: "skiShuttle"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.skiShuttle.label"; }, { readonly key: "skiStorage"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.skiStorage.label"; }, { readonly key: "skiToDoorAccess"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.skiToDoorAccess.label"; }, { readonly key: "smokeDetector"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.smokeDetector.label"; }, { readonly key: "snackBar"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.snackBar.label"; }, { readonly key: "socialDistancingRulesFollowed"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.socialDistancingRulesFollowed.label"; }, { readonly key: "solarium"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.solarium.label"; }, { readonly key: "souvenirGiftShop"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.souvenirGiftShop.label"; }, { readonly key: "spa"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.spa.label"; }, { readonly key: "spaLoungeRelaxationArea"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.spaLoungeRelaxationArea.label"; }, { readonly key: "spaWellnessPackages"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.spaWellnessPackages.label"; }, { readonly key: "specialDietMenus"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.specialDietMenus.label"; }, { readonly key: "squashCourt"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.squashCourt.label"; }, { readonly key: "staffFollowsSafetyProtocols"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.staffFollowsSafetyProtocols.label"; }, { readonly key: "stationeryRemovedFromCommonAreas"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.stationeryRemovedFromCommonAreas.label"; }, { readonly key: "steambath"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.steambath.label"; }, { readonly key: "strollerAvailable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.strollerAvailable.label"; }, { readonly key: "sunbathingArea"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.sunbathingArea.label"; }, { readonly key: "sunlounger"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.sunlounger.label"; }, { readonly key: "tableTennisTable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.tableTennisTable.label"; }, { readonly key: "tennisCourt"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.tennisCourt.label"; }, { readonly key: "tennisEquipment"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.tennisEquipment.label"; }, { readonly key: "terrace"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.terrace.label"; }, { readonly key: "thermometersAvailable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.thermometersAvailable.label"; }, { readonly key: "ticketService"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.ticketService.label"; }, { readonly key: "toiletWithGrabRails"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.toiletWithGrabRails.label"; }, { readonly key: "tourDesk"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.tourDesk.label"; }, { readonly key: "trouserPress"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.trouserPress.label"; }, { readonly key: "twentyFourHourFrontDesk"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.twentyFourHourFrontDesk.label"; }, { readonly key: "twentyFourHourSecurity"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.twentyFourHourSecurity.label"; }, { readonly key: "usesProfessionalCleaningChemicals"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.usesProfessionalCleaningChemicals.label"; }, { readonly key: "vendingMachineDrinks"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.vendingMachineDrinks.label"; }, { readonly key: "vendingMachineSnacks"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.vendingMachineSnacks.label"; }, { readonly key: "vipRoomFacilities"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.vipRoomFacilities.label"; }, { readonly key: "visualAidBraille"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.visualAidBraille.label"; }, { readonly key: "visualAidTactileSigns"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.visualAidTactileSigns.label"; }, { readonly key: "washer"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.washer.label"; }, { readonly key: "waterSlide"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.waterSlide.label"; }, { readonly key: "waterSportsFacilities"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.waterSportsFacilities.label"; }, { readonly key: "waxingServices"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.waxingServices.label"; }, { readonly key: "wheelchairFriendly"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.wheelchairFriendly.label"; }, { readonly key: "whirlpool"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.whirlpool.label"; }, { readonly key: "wifi"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.wifi.label"; }, { readonly key: "wineChampagneAvailable"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.wineChampagneAvailable.label"; }, { readonly key: "yogaClasses"; readonly category: { readonly key: "attributes"; readonly labelKey: "Property.attributes.label"; }; readonly display: "label_only"; readonly labelKey: "PropertyAttributes.yogaClasses.label"; }]; readonly vicinity: readonly [{ readonly key: "adventure"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.adventure.label"; }, { readonly key: "airportdistance"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.airportdistance.label"; }, { readonly key: "archery"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.archery.label"; }, { readonly key: "awayFromItAll"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.awayFromItAll.label"; }, { readonly key: "balloonTrips"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.balloonTrips.label"; }, { readonly key: "basketball"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.basketball.label"; }, { readonly key: "beach"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.beach.label"; }, { readonly key: "beachaccess"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.beachaccess.label"; }, { readonly key: "beachdistance"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.beachdistance.label"; }, { readonly key: "beachfront"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.beachfront.label"; }, { readonly key: "beachtype"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.beachtype.label"; readonly options: readonly [{ readonly value: "SAND"; readonly labelKey: "Vicinity.beachtype.option.SAND"; }, { readonly value: "GRAVEL"; readonly labelKey: "Vicinity.beachtype.option.GRAVEL"; }, { readonly value: "STONES"; readonly labelKey: "Vicinity.beachtype.option.STONES"; }, { readonly value: "ROCKS"; readonly labelKey: "Vicinity.beachtype.option.ROCKS"; }, { readonly value: "ROCK_PLATEAU"; readonly labelKey: "Vicinity.beachtype.option.ROCK_PLATEAU"; }]; }, { readonly key: "beachvolleyball"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.beachvolleyball.label"; }, { readonly key: "billiards"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.billiards.label"; }, { readonly key: "birdWatching"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.birdWatching.label"; }, { readonly key: "boatRental"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.boatRental.label"; }, { readonly key: "boatTrip"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.boatTrip.label"; }, { readonly key: "boccie"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.boccie.label"; }, { readonly key: "botanicalGarden"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.botanicalGarden.label"; }, { readonly key: "bowling"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.bowling.label"; }, { readonly key: "budget"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.budget.label"; }, { readonly key: "bungeeJumping"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.bungeeJumping.label"; }, { readonly key: "canoeing"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.canoeing.label"; }, { readonly key: "carriageRides"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.carriageRides.label"; }, { readonly key: "church"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.church.label"; }, { readonly key: "cinema"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.cinema.label"; }, { readonly key: "citydistance"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.citydistance.label"; }, { readonly key: "climbing"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.climbing.label"; }, { readonly key: "cosmeticTreatments"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.cosmeticTreatments.label"; }, { readonly key: "crossCountrySkiing"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.crossCountrySkiing.label"; }, { readonly key: "culture"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.culture.label"; }, { readonly key: "cycling"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.cycling.label"; }, { readonly key: "danceCourses"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.danceCourses.label"; }, { readonly key: "daySpa"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.daySpa.label"; }, { readonly key: "deepseaFisching"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.deepseaFisching.label"; }, { readonly key: "disco"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.disco.label"; }, { readonly key: "diving"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.diving.label"; }, { readonly key: "dutyfree"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.dutyfree.label"; }, { readonly key: "family"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.family.label"; }, { readonly key: "farmHolidays"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.farmHolidays.label"; }, { readonly key: "ferrydistance"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.ferrydistance.label"; }, { readonly key: "festivals"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.festivals.label"; }, { readonly key: "fishing"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.fishing.label"; }, { readonly key: "fitnessTraining"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.fitnessTraining.label"; }, { readonly key: "football"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.football.label"; }, { readonly key: "gambling"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.gambling.label"; }, { readonly key: "golf"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.golf.label"; }, { readonly key: "golfdistance"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.golfdistance.label"; }, { readonly key: "gymnastics"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.gymnastics.label"; }, { readonly key: "helicopterTours"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.helicopterTours.label"; }, { readonly key: "hiking"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.hiking.label"; }, { readonly key: "historic"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.historic.label"; }, { readonly key: "holidayComplex"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.holidayComplex.label"; }, { readonly key: "horsebackRiding"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.horsebackRiding.label"; }, { readonly key: "iceSkating"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.iceSkating.label"; }, { readonly key: "jetSkiing"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.jetSkiing.label"; }, { readonly key: "jogging"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.jogging.label"; }, { readonly key: "kayaking"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.kayaking.label"; }, { readonly key: "lakedistance"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.lakedistance.label"; }, { readonly key: "library"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.library.label"; }, { readonly key: "locAtm"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.locAtm.label"; }, { readonly key: "locBay"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.locBay.label"; }, { readonly key: "locBeach"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.locBeach.label"; }, { readonly key: "locCity"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.locCity.label"; }, { readonly key: "locDowntown"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.locDowntown.label"; }, { readonly key: "locForest"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.locForest.label"; }, { readonly key: "locGroceries"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.locGroceries.label"; }, { readonly key: "locHospital"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.locHospital.label"; }, { readonly key: "locLake"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.locLake.label"; }, { readonly key: "locMedicalServices"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.locMedicalServices.label"; }, { readonly key: "locMountain"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.locMountain.label"; }, { readonly key: "locOcean"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.locOcean.label"; }, { readonly key: "locRiver"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.locRiver.label"; }, { readonly key: "locRural"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.locRural.label"; }, { readonly key: "locVillage"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.locVillage.label"; }, { readonly key: "locWaterfalls"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.locWaterfalls.label"; }, { readonly key: "luxury"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.luxury.label"; }, { readonly key: "massages"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.massages.label"; }, { readonly key: "minigolf"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.minigolf.label"; }, { readonly key: "mountainbiking"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.mountainbiking.label"; }, { readonly key: "museums"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.museums.label"; }, { readonly key: "nordicWalking"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.nordicWalking.label"; }, { readonly key: "nudeBeach"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.nudeBeach.label"; }, { readonly key: "paragliding"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.paragliding.label"; }, { readonly key: "parasailing"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.parasailing.label"; }, { readonly key: "pilates"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.pilates.label"; }, { readonly key: "playgroundActivity"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.playgroundActivity.label"; }, { readonly key: "publictransportdistance"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.publictransportdistance.label"; }, { readonly key: "qiGong"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.qiGong.label"; }, { readonly key: "rafting"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.rafting.label"; }, { readonly key: "restaurantdistance"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.restaurantdistance.label"; }, { readonly key: "restaurants"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.restaurants.label"; }, { readonly key: "romantic"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.romantic.label"; }, { readonly key: "rowing"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.rowing.label"; }, { readonly key: "ruins"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.ruins.label"; }, { readonly key: "sailing"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.sailing.label"; }, { readonly key: "seadistance"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.seadistance.label"; }, { readonly key: "shopping"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.shopping.label"; }, { readonly key: "shoppingdistance"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.shoppingdistance.label"; }, { readonly key: "sightSeeing"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.sightSeeing.label"; }, { readonly key: "skialpine"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.skialpine.label"; }, { readonly key: "skidistance"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.skidistance.label"; }, { readonly key: "sledding"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.sledding.label"; }, { readonly key: "snorkeling"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.snorkeling.label"; }, { readonly key: "snowboarding"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.snowboarding.label"; }, { readonly key: "spelunking"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.spelunking.label"; }, { readonly key: "sportsActivities"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.sportsActivities.label"; }, { readonly key: "squash"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.squash.label"; }, { readonly key: "surfing"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.surfing.label"; }, { readonly key: "swimming"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.swimming.label"; }, { readonly key: "synagogues"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.synagogues.label"; }, { readonly key: "tableTennis"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.tableTennis.label"; }, { readonly key: "tennis"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.tennis.label"; }, { readonly key: "theater"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.theater.label"; }, { readonly key: "themeParks"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.themeParks.label"; }, { readonly key: "touristAttractions"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.touristAttractions.label"; }, { readonly key: "trainstationdistance"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.trainstationdistance.label"; }, { readonly key: "trekking"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.trekking.label"; }, { readonly key: "walking"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.walking.label"; }, { readonly key: "waterParks"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.waterParks.label"; }, { readonly key: "waterSki"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.waterSki.label"; }, { readonly key: "waterSport"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.waterSport.label"; }, { readonly key: "wellness"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.wellness.label"; }, { readonly key: "wellnessActivity"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.wellnessActivity.label"; }, { readonly key: "whaleWatching"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.whaleWatching.label"; }, { readonly key: "windSurfing"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.windSurfing.label"; }, { readonly key: "yoga"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.yoga.label"; }, { readonly key: "zoo"; readonly category: { readonly key: "vicinity"; readonly labelKey: "Property.vicinity.label"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "PropertyVicinityCard.zoo.label"; }]; }; //#endregion //#region src/codegen/v10/metadata/rental-metadata.d.ts declare const GENERATED_RENTAL_METADATA_CATALOG: { readonly attributes: readonly [{ readonly key: "wifi"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "CONNECTIVITY_CLIMATE"; readonly labelKey: "RentalAttributesCategory.CONNECTIVITY_CLIMATE.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.wifi.label"; }, { readonly key: "ac"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "CONNECTIVITY_CLIMATE"; readonly labelKey: "RentalAttributesCategory.CONNECTIVITY_CLIMATE.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.ac.label"; }, { readonly key: "acCoverage"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "CONNECTIVITY_CLIMATE"; readonly labelKey: "RentalAttributesCategory.CONNECTIVITY_CLIMATE.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.acCoverage.label"; readonly options: readonly [{ readonly value: "ALL_ROOMS"; readonly labelKey: "RentalAttributes.acCoverage.option.ALL_ROOMS"; }, { readonly value: "ALL_ROOMS_TO_STAY"; readonly labelKey: "RentalAttributes.acCoverage.option.ALL_ROOMS_TO_STAY"; }, { readonly value: "ALL_SLEEPING_ROOMS"; readonly labelKey: "RentalAttributes.acCoverage.option.ALL_SLEEPING_ROOMS"; }, { readonly value: "SOME_ROOMS"; readonly labelKey: "RentalAttributes.acCoverage.option.SOME_ROOMS"; }, { readonly value: "ONLY_LIVING_ROOMS"; readonly labelKey: "RentalAttributes.acCoverage.option.ONLY_LIVING_ROOMS"; }]; }, { readonly key: "airPurifiersInstalled"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "CONNECTIVITY_CLIMATE"; readonly labelKey: "RentalAttributesCategory.CONNECTIVITY_CLIMATE.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.airPurifiersInstalled.label"; }, { readonly key: "heating"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "CONNECTIVITY_CLIMATE"; readonly labelKey: "RentalAttributesCategory.CONNECTIVITY_CLIMATE.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.heating.label"; }, { readonly key: "individualAirConditioning"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "CONNECTIVITY_CLIMATE"; readonly labelKey: "RentalAttributesCategory.CONNECTIVITY_CLIMATE.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.individualAirConditioning.label"; }, { readonly key: "internet"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "CONNECTIVITY_CLIMATE"; readonly labelKey: "RentalAttributesCategory.CONNECTIVITY_CLIMATE.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.internet.label"; }, { readonly key: "internetSpeed"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "CONNECTIVITY_CLIMATE"; readonly labelKey: "RentalAttributesCategory.CONNECTIVITY_CLIMATE.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.internetSpeed.label"; readonly options: readonly [{ readonly value: "FROM_100_MBIT_S_E_G_CABLE_FIBRE_OPTIC"; readonly labelKey: "RentalAttributes.internetSpeed.option.FROM_100_MBIT_S_E_G_CABLE_FIBRE_OPTIC"; }, { readonly value: "FROM_25_M_BIT_S_E_G_VDSL"; readonly labelKey: "RentalAttributes.internetSpeed.option.FROM_25_M_BIT_S_E_G_VDSL"; }, { readonly value: "FROM_8_MBIT_S_E_G_DSL"; readonly labelKey: "RentalAttributes.internetSpeed.option.FROM_8_MBIT_S_E_G_DSL"; }, { readonly value: "MAX_128_KBIT_S"; readonly labelKey: "RentalAttributes.internetSpeed.option.MAX_128_KBIT_S"; }, { readonly value: "MAX_56_KBIT_S_MODEM"; readonly labelKey: "RentalAttributes.internetSpeed.option.MAX_56_KBIT_S_MODEM"; }]; }, { readonly key: "warmwater"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "CONNECTIVITY_CLIMATE"; readonly labelKey: "RentalAttributesCategory.CONNECTIVITY_CLIMATE.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.warmwater.label"; }, { readonly key: "carNecessity"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "PRACTICAL_NECESSITIES"; readonly labelKey: "RentalAttributesCategory.PRACTICAL_NECESSITIES.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.carNecessity.label"; readonly options: readonly [{ readonly value: "NECESSARY"; readonly labelKey: "RentalAttributes.carNecessity.option.NECESSARY"; }, { readonly value: "SUGGESTED"; readonly labelKey: "RentalAttributes.carNecessity.option.SUGGESTED"; }, { readonly value: "NOT_NECESSARY"; readonly labelKey: "RentalAttributes.carNecessity.option.NOT_NECESSARY"; }]; }, { readonly key: "carport"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "PRACTICAL_NECESSITIES"; readonly labelKey: "RentalAttributesCategory.PRACTICAL_NECESSITIES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.carport.label"; }, { readonly key: "dryer"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "PRACTICAL_NECESSITIES"; readonly labelKey: "RentalAttributesCategory.PRACTICAL_NECESSITIES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.dryer.label"; }, { readonly key: "garage"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "PRACTICAL_NECESSITIES"; readonly labelKey: "RentalAttributesCategory.PRACTICAL_NECESSITIES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.garage.label"; }, { readonly key: "iron"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "PRACTICAL_NECESSITIES"; readonly labelKey: "RentalAttributesCategory.PRACTICAL_NECESSITIES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.iron.label"; }, { readonly key: "ironingBoard"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "PRACTICAL_NECESSITIES"; readonly labelKey: "RentalAttributesCategory.PRACTICAL_NECESSITIES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.ironingBoard.label"; }, { readonly key: "keyAccessType"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "PRACTICAL_NECESSITIES"; readonly labelKey: "RentalAttributesCategory.PRACTICAL_NECESSITIES.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.keyAccessType.label"; readonly options: readonly [{ readonly value: "METAL"; readonly labelKey: "RentalAttributes.keyAccessType.option.METAL"; }, { readonly value: "KEYLESS"; readonly labelKey: "RentalAttributes.keyAccessType.option.KEYLESS"; }, { readonly value: "TRANSPONDER"; readonly labelKey: "RentalAttributes.keyAccessType.option.TRANSPONDER"; }]; }, { readonly key: "laundryRack"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "PRACTICAL_NECESSITIES"; readonly labelKey: "RentalAttributesCategory.PRACTICAL_NECESSITIES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.laundryRack.label"; }, { readonly key: "parkingCount"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "PRACTICAL_NECESSITIES"; readonly labelKey: "RentalAttributesCategory.PRACTICAL_NECESSITIES.label"; }; readonly display: "value_label"; readonly labelKey: "RentalAttributes.parkingCount.label"; }, { readonly key: "privateparking"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "PRACTICAL_NECESSITIES"; readonly labelKey: "RentalAttributesCategory.PRACTICAL_NECESSITIES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.privateparking.label"; }, { readonly key: "vacuum"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "PRACTICAL_NECESSITIES"; readonly labelKey: "RentalAttributesCategory.PRACTICAL_NECESSITIES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.vacuum.label"; }, { readonly key: "washer"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "PRACTICAL_NECESSITIES"; readonly labelKey: "RentalAttributesCategory.PRACTICAL_NECESSITIES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.washer.label"; }, { readonly key: "alarmSystem"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "SAFETY_SECURITY"; readonly labelKey: "RentalAttributesCategory.SAFETY_SECURITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.alarmSystem.label"; }, { readonly key: "carbonMonoxideDetector"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "SAFETY_SECURITY"; readonly labelKey: "RentalAttributesCategory.SAFETY_SECURITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.carbonMonoxideDetector.label"; }, { readonly key: "carbonMonoxideSource"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "SAFETY_SECURITY"; readonly labelKey: "RentalAttributesCategory.SAFETY_SECURITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.carbonMonoxideSource.label"; }, { readonly key: "fireAlarms"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "SAFETY_SECURITY"; readonly labelKey: "RentalAttributesCategory.SAFETY_SECURITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.fireAlarms.label"; }, { readonly key: "fireExtinguisher"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "SAFETY_SECURITY"; readonly labelKey: "RentalAttributesCategory.SAFETY_SECURITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.fireExtinguisher.label"; }, { readonly key: "firstAidKit"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "SAFETY_SECURITY"; readonly labelKey: "RentalAttributesCategory.SAFETY_SECURITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.firstAidKit.label"; }, { readonly key: "handSanitizer"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "SAFETY_SECURITY"; readonly labelKey: "RentalAttributesCategory.SAFETY_SECURITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.handSanitizer.label"; }, { readonly key: "safe"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "SAFETY_SECURITY"; readonly labelKey: "RentalAttributesCategory.SAFETY_SECURITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.safe.label"; }, { readonly key: "smokeDetector"; readonly category: { readonly key: "ESSENTIALS"; readonly labelKey: "RentalAttributesCategory.ESSENTIALS.label"; }; readonly subCategory: { readonly key: "SAFETY_SECURITY"; readonly labelKey: "RentalAttributesCategory.SAFETY_SECURITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.smokeDetector.label"; }, { readonly key: "dishwasher"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "BASIC_EQUIPMENT"; readonly labelKey: "RentalAttributesCategory.BASIC_EQUIPMENT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.dishwasher.label"; }, { readonly key: "freezer"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "BASIC_EQUIPMENT"; readonly labelKey: "RentalAttributesCategory.BASIC_EQUIPMENT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.freezer.label"; }, { readonly key: "fridge"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "BASIC_EQUIPMENT"; readonly labelKey: "RentalAttributesCategory.BASIC_EQUIPMENT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.fridge.label"; }, { readonly key: "oven"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "BASIC_EQUIPMENT"; readonly labelKey: "RentalAttributesCategory.BASIC_EQUIPMENT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.oven.label"; }, { readonly key: "stove"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "BASIC_EQUIPMENT"; readonly labelKey: "RentalAttributesCategory.BASIC_EQUIPMENT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.stove.label"; }, { readonly key: "cookingUtensils"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "BASIC_EQUIPMENT"; readonly labelKey: "RentalAttributesCategory.BASIC_EQUIPMENT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.cookingUtensils.label"; }, { readonly key: "dishcloth"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "BASIC_EQUIPMENT"; readonly labelKey: "RentalAttributesCategory.BASIC_EQUIPMENT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.dishcloth.label"; }, { readonly key: "dishes"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "BASIC_EQUIPMENT"; readonly labelKey: "RentalAttributesCategory.BASIC_EQUIPMENT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.dishes.label"; }, { readonly key: "freezerType"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "BASIC_EQUIPMENT"; readonly labelKey: "RentalAttributesCategory.BASIC_EQUIPMENT.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.freezerType.label"; readonly options: readonly [{ readonly value: "COMPARTMENT_IN_THE_FRIDGE"; readonly labelKey: "RentalAttributes.freezerType.option.COMPARTMENT_IN_THE_FRIDGE"; }, { readonly value: "EXTRA_FREEZER"; readonly labelKey: "RentalAttributes.freezerType.option.EXTRA_FREEZER"; }]; }, { readonly key: "microwave"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "BASIC_EQUIPMENT"; readonly labelKey: "RentalAttributesCategory.BASIC_EQUIPMENT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.microwave.label"; }, { readonly key: "ovenConnection"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "BASIC_EQUIPMENT"; readonly labelKey: "RentalAttributesCategory.BASIC_EQUIPMENT.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.ovenConnection.label"; readonly options: readonly [{ readonly value: "ELETRONIC"; readonly labelKey: "RentalAttributes.ovenConnection.option.ELETRONIC"; }, { readonly value: "GAS"; readonly labelKey: "RentalAttributes.ovenConnection.option.GAS"; }]; }, { readonly key: "stoveType"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "BASIC_EQUIPMENT"; readonly labelKey: "RentalAttributesCategory.BASIC_EQUIPMENT.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.stoveType.label"; readonly options: readonly [{ readonly value: "STOVE_TYPE_2_BURNER"; readonly labelKey: "RentalAttributes.stoveType.option.STOVE_TYPE_2_BURNER"; }, { readonly value: "STOVE_TYPE_3_BURNER"; readonly labelKey: "RentalAttributes.stoveType.option.STOVE_TYPE_3_BURNER"; }, { readonly value: "STOVE_TYPE_4_BURNER"; readonly labelKey: "RentalAttributes.stoveType.option.STOVE_TYPE_4_BURNER"; }, { readonly value: "CERAN"; readonly labelKey: "RentalAttributes.stoveType.option.CERAN"; }, { readonly value: "INDUCTION"; readonly labelKey: "RentalAttributes.stoveType.option.INDUCTION"; }, { readonly value: "GAS"; readonly labelKey: "RentalAttributes.stoveType.option.GAS"; }]; }, { readonly key: "trashcan"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "BASIC_EQUIPMENT"; readonly labelKey: "RentalAttributesCategory.BASIC_EQUIPMENT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.trashcan.label"; }, { readonly key: "coffeemaker"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "COFFEE_TEA"; readonly labelKey: "RentalAttributesCategory.COFFEE_TEA.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.coffeemaker.label"; }, { readonly key: "electricKettle"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "COFFEE_TEA"; readonly labelKey: "RentalAttributesCategory.COFFEE_TEA.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.electricKettle.label"; }, { readonly key: "espressomachine"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "COFFEE_TEA"; readonly labelKey: "RentalAttributesCategory.COFFEE_TEA.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.espressomachine.label"; }, { readonly key: "espressomachineType"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "COFFEE_TEA"; readonly labelKey: "RentalAttributesCategory.COFFEE_TEA.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.espressomachineType.label"; readonly options: readonly [{ readonly value: "AUTOMATIC_COFFEE_MACHINE"; readonly labelKey: "RentalAttributes.espressomachineType.option.AUTOMATIC_COFFEE_MACHINE"; }, { readonly value: "NESPRESSO"; readonly labelKey: "RentalAttributes.espressomachineType.option.NESPRESSO"; }, { readonly value: "TASSIMO"; readonly labelKey: "RentalAttributes.espressomachineType.option.TASSIMO"; }, { readonly value: "DOLCE_GUSTO"; readonly labelKey: "RentalAttributes.espressomachineType.option.DOLCE_GUSTO"; }, { readonly value: "CAFISSIMO"; readonly labelKey: "RentalAttributes.espressomachineType.option.CAFISSIMO"; }, { readonly value: "SENSEO"; readonly labelKey: "RentalAttributes.espressomachineType.option.SENSEO"; }, { readonly value: "CHICCO_D_ORO"; readonly labelKey: "RentalAttributes.espressomachineType.option.CHICCO_D_ORO"; }, { readonly value: "PORTAFILTER_MACHINE"; readonly labelKey: "RentalAttributes.espressomachineType.option.PORTAFILTER_MACHINE"; }]; }, { readonly key: "diningSeating"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "DINING_AREA"; readonly labelKey: "RentalAttributesCategory.DINING_AREA.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.diningSeating.label"; }, { readonly key: "kitchenDescription"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "DINING_AREA"; readonly labelKey: "RentalAttributesCategory.DINING_AREA.label"; }; readonly display: "value_label"; readonly labelKey: "RentalAttributes.kitchenDescription.label"; }, { readonly key: "toaster"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "SMALL_APPLIANCES"; readonly labelKey: "RentalAttributesCategory.SMALL_APPLIANCES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.toaster.label"; }, { readonly key: "eggboiler"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "SMALL_APPLIANCES"; readonly labelKey: "RentalAttributesCategory.SMALL_APPLIANCES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.eggboiler.label"; }, { readonly key: "indoorGrill"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "SMALL_APPLIANCES"; readonly labelKey: "RentalAttributesCategory.SMALL_APPLIANCES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.indoorGrill.label"; }, { readonly key: "kitchenmachine"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "SMALL_APPLIANCES"; readonly labelKey: "RentalAttributesCategory.SMALL_APPLIANCES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.kitchenmachine.label"; }, { readonly key: "mixer"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "SMALL_APPLIANCES"; readonly labelKey: "RentalAttributesCategory.SMALL_APPLIANCES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.mixer.label"; }, { readonly key: "raclette"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "SMALL_APPLIANCES"; readonly labelKey: "RentalAttributesCategory.SMALL_APPLIANCES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.raclette.label"; }, { readonly key: "sandwichToaster"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "SMALL_APPLIANCES"; readonly labelKey: "RentalAttributesCategory.SMALL_APPLIANCES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.sandwichToaster.label"; }, { readonly key: "spices"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "SMALL_APPLIANCES"; readonly labelKey: "RentalAttributesCategory.SMALL_APPLIANCES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.spices.label"; }, { readonly key: "wineGlasses"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly subCategory: { readonly key: "SMALL_APPLIANCES"; readonly labelKey: "RentalAttributesCategory.SMALL_APPLIANCES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.wineGlasses.label"; }, { readonly key: "kitchen"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.kitchen.label"; }, { readonly key: "kitchenType"; readonly category: { readonly key: "KITCHEN"; readonly labelKey: "RentalAttributesCategory.KITCHEN.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.kitchenType.label"; readonly options: readonly [{ readonly value: "CLOSED"; readonly labelKey: "RentalAttributes.kitchenType.option.CLOSED"; }, { readonly value: "CLOSED_WITH_DINING_TABLE"; readonly labelKey: "RentalAttributes.kitchenType.option.CLOSED_WITH_DINING_TABLE"; }, { readonly value: "OPEN_TO_LIVING_ROOM"; readonly labelKey: "RentalAttributes.kitchenType.option.OPEN_TO_LIVING_ROOM"; }, { readonly value: "KITCHENETTE"; readonly labelKey: "RentalAttributes.kitchenType.option.KITCHENETTE"; }]; }, { readonly key: "alarmClock"; readonly category: { readonly key: "LIVING_SLEEPING"; readonly labelKey: "RentalAttributesCategory.LIVING_SLEEPING.label"; }; readonly subCategory: { readonly key: "BEDROOM_GENERAL"; readonly labelKey: "RentalAttributesCategory.BEDROOM_GENERAL.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.alarmClock.label"; }, { readonly key: "blinds"; readonly category: { readonly key: "LIVING_SLEEPING"; readonly labelKey: "RentalAttributesCategory.LIVING_SLEEPING.label"; }; readonly subCategory: { readonly key: "BEDROOM_GENERAL"; readonly labelKey: "RentalAttributesCategory.BEDROOM_GENERAL.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.blinds.label"; }, { readonly key: "coatCheck"; readonly category: { readonly key: "LIVING_SLEEPING"; readonly labelKey: "RentalAttributesCategory.LIVING_SLEEPING.label"; }; readonly subCategory: { readonly key: "BEDROOM_GENERAL"; readonly labelKey: "RentalAttributesCategory.BEDROOM_GENERAL.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.coatCheck.label"; }, { readonly key: "earplugs"; readonly category: { readonly key: "LIVING_SLEEPING"; readonly labelKey: "RentalAttributesCategory.LIVING_SLEEPING.label"; }; readonly subCategory: { readonly key: "BEDROOM_GENERAL"; readonly labelKey: "RentalAttributesCategory.BEDROOM_GENERAL.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.earplugs.label"; }, { readonly key: "featherPillow"; readonly category: { readonly key: "LIVING_SLEEPING"; readonly labelKey: "RentalAttributesCategory.LIVING_SLEEPING.label"; }; readonly subCategory: { readonly key: "BEDROOM_GENERAL"; readonly labelKey: "RentalAttributesCategory.BEDROOM_GENERAL.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.featherPillow.label"; }, { readonly key: "flyscreen"; readonly category: { readonly key: "LIVING_SLEEPING"; readonly labelKey: "RentalAttributesCategory.LIVING_SLEEPING.label"; }; readonly subCategory: { readonly key: "BEDROOM_GENERAL"; readonly labelKey: "RentalAttributesCategory.BEDROOM_GENERAL.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.flyscreen.label"; }, { readonly key: "fullLengthMirror"; readonly category: { readonly key: "LIVING_SLEEPING"; readonly labelKey: "RentalAttributesCategory.LIVING_SLEEPING.label"; }; readonly subCategory: { readonly key: "BEDROOM_GENERAL"; readonly labelKey: "RentalAttributesCategory.BEDROOM_GENERAL.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.fullLengthMirror.label"; }, { readonly key: "hypoallergenicPillow"; readonly category: { readonly key: "LIVING_SLEEPING"; readonly labelKey: "RentalAttributesCategory.LIVING_SLEEPING.label"; }; readonly subCategory: { readonly key: "BEDROOM_GENERAL"; readonly labelKey: "RentalAttributesCategory.BEDROOM_GENERAL.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.hypoallergenicPillow.label"; }, { readonly key: "lockers"; readonly category: { readonly key: "LIVING_SLEEPING"; readonly labelKey: "RentalAttributesCategory.LIVING_SLEEPING.label"; }; readonly subCategory: { readonly key: "BEDROOM_GENERAL"; readonly labelKey: "RentalAttributesCategory.BEDROOM_GENERAL.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.lockers.label"; }, { readonly key: "nonFeatherPillow"; readonly category: { readonly key: "LIVING_SLEEPING"; readonly labelKey: "RentalAttributesCategory.LIVING_SLEEPING.label"; }; readonly subCategory: { readonly key: "BEDROOM_GENERAL"; readonly labelKey: "RentalAttributesCategory.BEDROOM_GENERAL.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.nonFeatherPillow.label"; }, { readonly key: "pajamas"; readonly category: { readonly key: "LIVING_SLEEPING"; readonly labelKey: "RentalAttributesCategory.LIVING_SLEEPING.label"; }; readonly subCategory: { readonly key: "BEDROOM_GENERAL"; readonly labelKey: "RentalAttributesCategory.BEDROOM_GENERAL.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.pajamas.label"; }, { readonly key: "shoeCabinet"; readonly category: { readonly key: "LIVING_SLEEPING"; readonly labelKey: "RentalAttributesCategory.LIVING_SLEEPING.label"; }; readonly subCategory: { readonly key: "BEDROOM_GENERAL"; readonly labelKey: "RentalAttributesCategory.BEDROOM_GENERAL.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.shoeCabinet.label"; }, { readonly key: "soundproof"; readonly category: { readonly key: "LIVING_SLEEPING"; readonly labelKey: "RentalAttributesCategory.LIVING_SLEEPING.label"; }; readonly subCategory: { readonly key: "BEDROOM_GENERAL"; readonly labelKey: "RentalAttributesCategory.BEDROOM_GENERAL.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.soundproof.label"; }, { readonly key: "fan"; readonly category: { readonly key: "LIVING_SLEEPING"; readonly labelKey: "RentalAttributesCategory.LIVING_SLEEPING.label"; }; readonly subCategory: { readonly key: "LIVING_ROOM"; readonly labelKey: "RentalAttributesCategory.LIVING_ROOM.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.fan.label"; }, { readonly key: "fireside"; readonly category: { readonly key: "LIVING_SLEEPING"; readonly labelKey: "RentalAttributesCategory.LIVING_SLEEPING.label"; }; readonly subCategory: { readonly key: "LIVING_ROOM"; readonly labelKey: "RentalAttributesCategory.LIVING_ROOM.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.fireside.label"; }, { readonly key: "firesideType"; readonly category: { readonly key: "LIVING_SLEEPING"; readonly labelKey: "RentalAttributesCategory.LIVING_SLEEPING.label"; }; readonly subCategory: { readonly key: "LIVING_ROOM"; readonly labelKey: "RentalAttributesCategory.LIVING_ROOM.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.firesideType.label"; readonly options: readonly [{ readonly value: "STOVE_WITH_WINDOW"; readonly labelKey: "RentalAttributes.firesideType.option.STOVE_WITH_WINDOW"; }, { readonly value: "FIREPLACE"; readonly labelKey: "RentalAttributes.firesideType.option.FIREPLACE"; }, { readonly value: "STOVE_WITHOUT_WINDOW"; readonly labelKey: "RentalAttributes.firesideType.option.STOVE_WITHOUT_WINDOW"; }]; }, { readonly key: "loungeSeating"; readonly category: { readonly key: "LIVING_SLEEPING"; readonly labelKey: "RentalAttributesCategory.LIVING_SLEEPING.label"; }; readonly subCategory: { readonly key: "LIVING_ROOM"; readonly labelKey: "RentalAttributesCategory.LIVING_ROOM.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.loungeSeating.label"; }, { readonly key: "bodySoap"; readonly category: { readonly key: "BATHROOM"; readonly labelKey: "RentalAttributesCategory.BATHROOM.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.bodySoap.label"; }, { readonly key: "conditioner"; readonly category: { readonly key: "BATHROOM"; readonly labelKey: "RentalAttributesCategory.BATHROOM.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.conditioner.label"; }, { readonly key: "guestwc"; readonly category: { readonly key: "BATHROOM"; readonly labelKey: "RentalAttributesCategory.BATHROOM.label"; }; readonly display: "value_label"; readonly labelKey: "RentalAttributes.guestwc.label"; }, { readonly key: "shampoo"; readonly category: { readonly key: "BATHROOM"; readonly labelKey: "RentalAttributesCategory.BATHROOM.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.shampoo.label"; }, { readonly key: "showerCap"; readonly category: { readonly key: "BATHROOM"; readonly labelKey: "RentalAttributesCategory.BATHROOM.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.showerCap.label"; }, { readonly key: "toiletPaper"; readonly category: { readonly key: "BATHROOM"; readonly labelKey: "RentalAttributesCategory.BATHROOM.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.toiletPaper.label"; }, { readonly key: "toothbrush"; readonly category: { readonly key: "BATHROOM"; readonly labelKey: "RentalAttributesCategory.BATHROOM.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.toothbrush.label"; }, { readonly key: "trashCans"; readonly category: { readonly key: "BATHROOM"; readonly labelKey: "RentalAttributesCategory.BATHROOM.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.trashCans.label"; }, { readonly key: "accessToPrivateBeach"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "EXTRAS_SAFETY"; readonly labelKey: "RentalAttributesCategory.EXTRAS_SAFETY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.accessToPrivateBeach.label"; }, { readonly key: "closedPlot"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "EXTRAS_SAFETY"; readonly labelKey: "RentalAttributesCategory.EXTRAS_SAFETY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.closedPlot.label"; }, { readonly key: "fishguttingPlace"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "EXTRAS_SAFETY"; readonly labelKey: "RentalAttributesCategory.EXTRAS_SAFETY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.fishguttingPlace.label"; }, { readonly key: "gardenShed"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "EXTRAS_SAFETY"; readonly labelKey: "RentalAttributesCategory.EXTRAS_SAFETY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.gardenShed.label"; }, { readonly key: "landingStage"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "EXTRAS_SAFETY"; readonly labelKey: "RentalAttributesCategory.EXTRAS_SAFETY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.landingStage.label"; }, { readonly key: "outdoorKitchen"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "EXTRAS_SAFETY"; readonly labelKey: "RentalAttributesCategory.EXTRAS_SAFETY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.outdoorKitchen.label"; }, { readonly key: "outdoorShower"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "EXTRAS_SAFETY"; readonly labelKey: "RentalAttributesCategory.EXTRAS_SAFETY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.outdoorShower.label"; }, { readonly key: "pond"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "EXTRAS_SAFETY"; readonly labelKey: "RentalAttributesCategory.EXTRAS_SAFETY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.pond.label"; }, { readonly key: "privateOpenAirBath"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "EXTRAS_SAFETY"; readonly labelKey: "RentalAttributesCategory.EXTRAS_SAFETY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.privateOpenAirBath.label"; }, { readonly key: "balcony"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "FURNITURE_COMFORT"; readonly labelKey: "RentalAttributesCategory.FURNITURE_COMFORT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.balcony.label"; }, { readonly key: "beachChair"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "FURNITURE_COMFORT"; readonly labelKey: "RentalAttributesCategory.FURNITURE_COMFORT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.beachChair.label"; }, { readonly key: "beachChairAtBeach"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "FURNITURE_COMFORT"; readonly labelKey: "RentalAttributesCategory.FURNITURE_COMFORT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.beachChairAtBeach.label"; }, { readonly key: "closedTerrace"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "FURNITURE_COMFORT"; readonly labelKey: "RentalAttributesCategory.FURNITURE_COMFORT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.closedTerrace.label"; }, { readonly key: "coveredTerrace"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "FURNITURE_COMFORT"; readonly labelKey: "RentalAttributesCategory.FURNITURE_COMFORT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.coveredTerrace.label"; }, { readonly key: "garden"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "FURNITURE_COMFORT"; readonly labelKey: "RentalAttributesCategory.FURNITURE_COMFORT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.garden.label"; }, { readonly key: "hammock"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "FURNITURE_COMFORT"; readonly labelKey: "RentalAttributesCategory.FURNITURE_COMFORT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.hammock.label"; }, { readonly key: "marquee"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "FURNITURE_COMFORT"; readonly labelKey: "RentalAttributesCategory.FURNITURE_COMFORT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.marquee.label"; }, { readonly key: "outdoorDiningArea"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "FURNITURE_COMFORT"; readonly labelKey: "RentalAttributesCategory.FURNITURE_COMFORT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.outdoorDiningArea.label"; }, { readonly key: "outdoorFurniture"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "FURNITURE_COMFORT"; readonly labelKey: "RentalAttributesCategory.FURNITURE_COMFORT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.outdoorFurniture.label"; }, { readonly key: "parasol"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "FURNITURE_COMFORT"; readonly labelKey: "RentalAttributesCategory.FURNITURE_COMFORT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.parasol.label"; }, { readonly key: "pavilion"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "FURNITURE_COMFORT"; readonly labelKey: "RentalAttributesCategory.FURNITURE_COMFORT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.pavilion.label"; }, { readonly key: "sunbathingArea"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "FURNITURE_COMFORT"; readonly labelKey: "RentalAttributesCategory.FURNITURE_COMFORT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.sunbathingArea.label"; }, { readonly key: "sunlounger"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "FURNITURE_COMFORT"; readonly labelKey: "RentalAttributesCategory.FURNITURE_COMFORT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.sunlounger.label"; }, { readonly key: "terrace"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "FURNITURE_COMFORT"; readonly labelKey: "RentalAttributesCategory.FURNITURE_COMFORT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.terrace.label"; }, { readonly key: "windScreen"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "FURNITURE_COMFORT"; readonly labelKey: "RentalAttributesCategory.FURNITURE_COMFORT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.windScreen.label"; }, { readonly key: "bbq"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "TOP_FEATURES"; readonly labelKey: "RentalAttributesCategory.TOP_FEATURES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.bbq.label"; }, { readonly key: "bbqArea"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "TOP_FEATURES"; readonly labelKey: "RentalAttributesCategory.TOP_FEATURES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.bbqArea.label"; }, { readonly key: "bbqType"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "TOP_FEATURES"; readonly labelKey: "RentalAttributesCategory.TOP_FEATURES.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.bbqType.label"; readonly options: readonly [{ readonly value: "GAS"; readonly labelKey: "RentalAttributes.bbqType.option.GAS"; }, { readonly value: "COAL"; readonly labelKey: "RentalAttributes.bbqType.option.COAL"; }, { readonly value: "ELECTRONIC"; readonly labelKey: "RentalAttributes.bbqType.option.ELECTRONIC"; }]; }, { readonly key: "fireplace"; readonly category: { readonly key: "OUTDOORS"; readonly labelKey: "RentalAttributesCategory.OUTDOORS.label"; }; readonly subCategory: { readonly key: "TOP_FEATURES"; readonly labelKey: "RentalAttributesCategory.TOP_FEATURES.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.fireplace.label"; }, { readonly key: "bicycles"; readonly category: { readonly key: "WELLNESS_RECREATION"; readonly labelKey: "RentalAttributesCategory.WELLNESS_RECREATION.label"; }; readonly subCategory: { readonly key: "ACTIVITIES_SPORTS"; readonly labelKey: "RentalAttributesCategory.ACTIVITIES_SPORTS.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.bicycles.label"; }, { readonly key: "boatBerth"; readonly category: { readonly key: "WELLNESS_RECREATION"; readonly labelKey: "RentalAttributesCategory.WELLNESS_RECREATION.label"; }; readonly subCategory: { readonly key: "ACTIVITIES_SPORTS"; readonly labelKey: "RentalAttributesCategory.ACTIVITIES_SPORTS.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.boatBerth.label"; }, { readonly key: "gym"; readonly category: { readonly key: "WELLNESS_RECREATION"; readonly labelKey: "RentalAttributesCategory.WELLNESS_RECREATION.label"; }; readonly subCategory: { readonly key: "ACTIVITIES_SPORTS"; readonly labelKey: "RentalAttributesCategory.ACTIVITIES_SPORTS.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.gym.label"; }, { readonly key: "pooltable"; readonly category: { readonly key: "WELLNESS_RECREATION"; readonly labelKey: "RentalAttributesCategory.WELLNESS_RECREATION.label"; }; readonly subCategory: { readonly key: "ACTIVITIES_SPORTS"; readonly labelKey: "RentalAttributesCategory.ACTIVITIES_SPORTS.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.pooltable.label"; }, { readonly key: "skiBootWarmer"; readonly category: { readonly key: "WELLNESS_RECREATION"; readonly labelKey: "RentalAttributesCategory.WELLNESS_RECREATION.label"; }; readonly subCategory: { readonly key: "ACTIVITIES_SPORTS"; readonly labelKey: "RentalAttributesCategory.ACTIVITIES_SPORTS.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.skiBootWarmer.label"; }, { readonly key: "spa"; readonly category: { readonly key: "WELLNESS_RECREATION"; readonly labelKey: "RentalAttributesCategory.WELLNESS_RECREATION.label"; }; readonly subCategory: { readonly key: "ACTIVITIES_SPORTS"; readonly labelKey: "RentalAttributesCategory.ACTIVITIES_SPORTS.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.spa.label"; }, { readonly key: "tableTennisTable"; readonly category: { readonly key: "WELLNESS_RECREATION"; readonly labelKey: "RentalAttributesCategory.WELLNESS_RECREATION.label"; }; readonly subCategory: { readonly key: "ACTIVITIES_SPORTS"; readonly labelKey: "RentalAttributesCategory.ACTIVITIES_SPORTS.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.tableTennisTable.label"; }, { readonly key: "tennisCourt"; readonly category: { readonly key: "WELLNESS_RECREATION"; readonly labelKey: "RentalAttributesCategory.WELLNESS_RECREATION.label"; }; readonly subCategory: { readonly key: "ACTIVITIES_SPORTS"; readonly labelKey: "RentalAttributesCategory.ACTIVITIES_SPORTS.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.tennisCourt.label"; }, { readonly key: "indoorPool"; readonly category: { readonly key: "WELLNESS_RECREATION"; readonly labelKey: "RentalAttributesCategory.WELLNESS_RECREATION.label"; }; readonly subCategory: { readonly key: "WATER_HEAT"; readonly labelKey: "RentalAttributesCategory.WATER_HEAT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.indoorPool.label"; }, { readonly key: "indoorPoolDetails"; readonly category: { readonly key: "WELLNESS_RECREATION"; readonly labelKey: "RentalAttributesCategory.WELLNESS_RECREATION.label"; }; readonly subCategory: { readonly key: "WATER_HEAT"; readonly labelKey: "RentalAttributesCategory.WATER_HEAT.label"; }; readonly display: "value_label"; readonly labelKey: "RentalAttributes.indoorPoolDetails.label"; }, { readonly key: "infraredCabin"; readonly category: { readonly key: "WELLNESS_RECREATION"; readonly labelKey: "RentalAttributesCategory.WELLNESS_RECREATION.label"; }; readonly subCategory: { readonly key: "WATER_HEAT"; readonly labelKey: "RentalAttributesCategory.WATER_HEAT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.infraredCabin.label"; }, { readonly key: "outdoorPool"; readonly category: { readonly key: "WELLNESS_RECREATION"; readonly labelKey: "RentalAttributesCategory.WELLNESS_RECREATION.label"; }; readonly subCategory: { readonly key: "WATER_HEAT"; readonly labelKey: "RentalAttributesCategory.WATER_HEAT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.outdoorPool.label"; }, { readonly key: "outdoorPoolDetails"; readonly category: { readonly key: "WELLNESS_RECREATION"; readonly labelKey: "RentalAttributesCategory.WELLNESS_RECREATION.label"; }; readonly subCategory: { readonly key: "WATER_HEAT"; readonly labelKey: "RentalAttributesCategory.WATER_HEAT.label"; }; readonly display: "value_label"; readonly labelKey: "RentalAttributes.outdoorPoolDetails.label"; }, { readonly key: "pool4kids"; readonly category: { readonly key: "WELLNESS_RECREATION"; readonly labelKey: "RentalAttributesCategory.WELLNESS_RECREATION.label"; }; readonly subCategory: { readonly key: "WATER_HEAT"; readonly labelKey: "RentalAttributesCategory.WATER_HEAT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.pool4kids.label"; }, { readonly key: "sauna"; readonly category: { readonly key: "WELLNESS_RECREATION"; readonly labelKey: "RentalAttributesCategory.WELLNESS_RECREATION.label"; }; readonly subCategory: { readonly key: "WATER_HEAT"; readonly labelKey: "RentalAttributesCategory.WATER_HEAT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.sauna.label"; }, { readonly key: "solarium"; readonly category: { readonly key: "WELLNESS_RECREATION"; readonly labelKey: "RentalAttributesCategory.WELLNESS_RECREATION.label"; }; readonly subCategory: { readonly key: "WATER_HEAT"; readonly labelKey: "RentalAttributesCategory.WATER_HEAT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.solarium.label"; }, { readonly key: "steambath"; readonly category: { readonly key: "WELLNESS_RECREATION"; readonly labelKey: "RentalAttributesCategory.WELLNESS_RECREATION.label"; }; readonly subCategory: { readonly key: "WATER_HEAT"; readonly labelKey: "RentalAttributesCategory.WATER_HEAT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.steambath.label"; }, { readonly key: "whirlpool"; readonly category: { readonly key: "WELLNESS_RECREATION"; readonly labelKey: "RentalAttributesCategory.WELLNESS_RECREATION.label"; }; readonly subCategory: { readonly key: "WATER_HEAT"; readonly labelKey: "RentalAttributesCategory.WATER_HEAT.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.whirlpool.label"; }, { readonly key: "childrenWelcome"; readonly category: { readonly key: "FAMILIES_CHILDREN"; readonly labelKey: "RentalAttributesCategory.FAMILIES_CHILDREN.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.childrenWelcome.label"; }, { readonly key: "babygate"; readonly category: { readonly key: "FAMILIES_CHILDREN"; readonly labelKey: "RentalAttributesCategory.FAMILIES_CHILDREN.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.babygate.label"; }, { readonly key: "bookDvdMusicLibraryForChildren"; readonly category: { readonly key: "FAMILIES_CHILDREN"; readonly labelKey: "RentalAttributesCategory.FAMILIES_CHILDREN.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.bookDvdMusicLibraryForChildren.label"; }, { readonly key: "childSafetySocketCovers"; readonly category: { readonly key: "FAMILIES_CHILDREN"; readonly labelKey: "RentalAttributesCategory.FAMILIES_CHILDREN.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.childSafetySocketCovers.label"; }, { readonly key: "handcart"; readonly category: { readonly key: "FAMILIES_CHILDREN"; readonly labelKey: "RentalAttributesCategory.FAMILIES_CHILDREN.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.handcart.label"; }, { readonly key: "playground"; readonly category: { readonly key: "FAMILIES_CHILDREN"; readonly labelKey: "RentalAttributesCategory.FAMILIES_CHILDREN.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.playground.label"; }, { readonly key: "sandbox"; readonly category: { readonly key: "FAMILIES_CHILDREN"; readonly labelKey: "RentalAttributesCategory.FAMILIES_CHILDREN.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.sandbox.label"; }, { readonly key: "slide"; readonly category: { readonly key: "FAMILIES_CHILDREN"; readonly labelKey: "RentalAttributesCategory.FAMILIES_CHILDREN.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.slide.label"; }, { readonly key: "swing"; readonly category: { readonly key: "FAMILIES_CHILDREN"; readonly labelKey: "RentalAttributesCategory.FAMILIES_CHILDREN.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.swing.label"; }, { readonly key: "toys"; readonly category: { readonly key: "FAMILIES_CHILDREN"; readonly labelKey: "RentalAttributesCategory.FAMILIES_CHILDREN.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.toys.label"; }, { readonly key: "trampoline"; readonly category: { readonly key: "FAMILIES_CHILDREN"; readonly labelKey: "RentalAttributesCategory.FAMILIES_CHILDREN.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.trampoline.label"; }, { readonly key: "bottleOfWater"; readonly category: { readonly key: "ENTERTAINMENT_UTILITIES"; readonly labelKey: "RentalAttributesCategory.ENTERTAINMENT_UTILITIES.label"; }; readonly subCategory: { readonly key: "CATERING_EXTRAS"; readonly labelKey: "RentalAttributesCategory.CATERING_EXTRAS.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.bottleOfWater.label"; }, { readonly key: "chocolateOrCookie"; readonly category: { readonly key: "ENTERTAINMENT_UTILITIES"; readonly labelKey: "RentalAttributesCategory.ENTERTAINMENT_UTILITIES.label"; }; readonly subCategory: { readonly key: "CATERING_EXTRAS"; readonly labelKey: "RentalAttributesCategory.CATERING_EXTRAS.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.chocolateOrCookie.label"; }, { readonly key: "fruits"; readonly category: { readonly key: "ENTERTAINMENT_UTILITIES"; readonly labelKey: "RentalAttributesCategory.ENTERTAINMENT_UTILITIES.label"; }; readonly subCategory: { readonly key: "CATERING_EXTRAS"; readonly labelKey: "RentalAttributesCategory.CATERING_EXTRAS.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.fruits.label"; }, { readonly key: "minibar"; readonly category: { readonly key: "ENTERTAINMENT_UTILITIES"; readonly labelKey: "RentalAttributesCategory.ENTERTAINMENT_UTILITIES.label"; }; readonly subCategory: { readonly key: "CATERING_EXTRAS"; readonly labelKey: "RentalAttributesCategory.CATERING_EXTRAS.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.minibar.label"; }, { readonly key: "wineOrChampagne"; readonly category: { readonly key: "ENTERTAINMENT_UTILITIES"; readonly labelKey: "RentalAttributesCategory.ENTERTAINMENT_UTILITIES.label"; }; readonly subCategory: { readonly key: "CATERING_EXTRAS"; readonly labelKey: "RentalAttributesCategory.CATERING_EXTRAS.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.wineOrChampagne.label"; }, { readonly key: "tv"; readonly category: { readonly key: "ENTERTAINMENT_UTILITIES"; readonly labelKey: "RentalAttributesCategory.ENTERTAINMENT_UTILITIES.label"; }; readonly subCategory: { readonly key: "MEDIA"; readonly labelKey: "RentalAttributesCategory.MEDIA.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.tv.label"; }, { readonly key: "beamer"; readonly category: { readonly key: "ENTERTAINMENT_UTILITIES"; readonly labelKey: "RentalAttributesCategory.ENTERTAINMENT_UTILITIES.label"; }; readonly subCategory: { readonly key: "MEDIA"; readonly labelKey: "RentalAttributesCategory.MEDIA.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.beamer.label"; }, { readonly key: "bluray"; readonly category: { readonly key: "ENTERTAINMENT_UTILITIES"; readonly labelKey: "RentalAttributesCategory.ENTERTAINMENT_UTILITIES.label"; }; readonly subCategory: { readonly key: "MEDIA"; readonly labelKey: "RentalAttributesCategory.MEDIA.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.bluray.label"; }, { readonly key: "books"; readonly category: { readonly key: "ENTERTAINMENT_UTILITIES"; readonly labelKey: "RentalAttributesCategory.ENTERTAINMENT_UTILITIES.label"; }; readonly subCategory: { readonly key: "MEDIA"; readonly labelKey: "RentalAttributesCategory.MEDIA.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.books.label"; }, { readonly key: "cd"; readonly category: { readonly key: "ENTERTAINMENT_UTILITIES"; readonly labelKey: "RentalAttributesCategory.ENTERTAINMENT_UTILITIES.label"; }; readonly subCategory: { readonly key: "MEDIA"; readonly labelKey: "RentalAttributesCategory.MEDIA.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.cd.label"; }, { readonly key: "dvd"; readonly category: { readonly key: "ENTERTAINMENT_UTILITIES"; readonly labelKey: "RentalAttributesCategory.ENTERTAINMENT_UTILITIES.label"; }; readonly subCategory: { readonly key: "MEDIA"; readonly labelKey: "RentalAttributesCategory.MEDIA.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.dvd.label"; }, { readonly key: "games"; readonly category: { readonly key: "ENTERTAINMENT_UTILITIES"; readonly labelKey: "RentalAttributesCategory.ENTERTAINMENT_UTILITIES.label"; }; readonly subCategory: { readonly key: "MEDIA"; readonly labelKey: "RentalAttributesCategory.MEDIA.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.games.label"; }, { readonly key: "hifi"; readonly category: { readonly key: "ENTERTAINMENT_UTILITIES"; readonly labelKey: "RentalAttributesCategory.ENTERTAINMENT_UTILITIES.label"; }; readonly subCategory: { readonly key: "MEDIA"; readonly labelKey: "RentalAttributesCategory.MEDIA.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.hifi.label"; }, { readonly key: "homecinema"; readonly category: { readonly key: "ENTERTAINMENT_UTILITIES"; readonly labelKey: "RentalAttributesCategory.ENTERTAINMENT_UTILITIES.label"; }; readonly subCategory: { readonly key: "MEDIA"; readonly labelKey: "RentalAttributesCategory.MEDIA.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.homecinema.label"; }, { readonly key: "radio"; readonly category: { readonly key: "ENTERTAINMENT_UTILITIES"; readonly labelKey: "RentalAttributesCategory.ENTERTAINMENT_UTILITIES.label"; }; readonly subCategory: { readonly key: "MEDIA"; readonly labelKey: "RentalAttributesCategory.MEDIA.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.radio.label"; }, { readonly key: "tvConnection"; readonly category: { readonly key: "ENTERTAINMENT_UTILITIES"; readonly labelKey: "RentalAttributesCategory.ENTERTAINMENT_UTILITIES.label"; }; readonly subCategory: { readonly key: "MEDIA"; readonly labelKey: "RentalAttributesCategory.MEDIA.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.tvConnection.label"; readonly options: readonly [{ readonly value: "SATELLITE"; readonly labelKey: "RentalAttributes.tvConnection.option.SATELLITE"; }, { readonly value: "CABLE"; readonly labelKey: "RentalAttributes.tvConnection.option.CABLE"; }, { readonly value: "TERRESTRIAL"; readonly labelKey: "RentalAttributes.tvConnection.option.TERRESTRIAL"; }]; }, { readonly key: "tvSize"; readonly category: { readonly key: "ENTERTAINMENT_UTILITIES"; readonly labelKey: "RentalAttributesCategory.ENTERTAINMENT_UTILITIES.label"; }; readonly subCategory: { readonly key: "MEDIA"; readonly labelKey: "RentalAttributesCategory.MEDIA.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.tvSize.label"; readonly options: readonly [{ readonly value: "UP_TO_24"; readonly labelKey: "RentalAttributes.tvSize.option.UP_TO_24"; }, { readonly value: "TV_SIZE_25_34"; readonly labelKey: "RentalAttributes.tvSize.option.TV_SIZE_25_34"; }, { readonly value: "TV_SIZE_35_44"; readonly labelKey: "RentalAttributes.tvSize.option.TV_SIZE_35_44"; }, { readonly value: "TV_SIZE_44_55"; readonly labelKey: "RentalAttributes.tvSize.option.TV_SIZE_44_55"; }, { readonly value: "MORE_THAN_55"; readonly labelKey: "RentalAttributes.tvSize.option.MORE_THAN_55"; }]; }, { readonly key: "vod"; readonly category: { readonly key: "ENTERTAINMENT_UTILITIES"; readonly labelKey: "RentalAttributesCategory.ENTERTAINMENT_UTILITIES.label"; }; readonly subCategory: { readonly key: "MEDIA"; readonly labelKey: "RentalAttributesCategory.MEDIA.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.vod.label"; }, { readonly key: "accessibleByLift"; readonly category: { readonly key: "ACCESSIBILITY"; readonly labelKey: "RentalAttributesCategory.ACCESSIBILITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.accessibleByLift.label"; }, { readonly key: "adaptedBath"; readonly category: { readonly key: "ACCESSIBILITY"; readonly labelKey: "RentalAttributesCategory.ACCESSIBILITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.adaptedBath.label"; }, { readonly key: "bathroomEmergencyPullCord"; readonly category: { readonly key: "ACCESSIBILITY"; readonly labelKey: "RentalAttributesCategory.ACCESSIBILITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.bathroomEmergencyPullCord.label"; }, { readonly key: "entireUnitWheelchairAccessible"; readonly category: { readonly key: "ACCESSIBILITY"; readonly labelKey: "RentalAttributesCategory.ACCESSIBILITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.entireUnitWheelchairAccessible.label"; }, { readonly key: "handicappedAccessible"; readonly category: { readonly key: "ACCESSIBILITY"; readonly labelKey: "RentalAttributesCategory.ACCESSIBILITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.handicappedAccessible.label"; }, { readonly key: "higherLevelToilet"; readonly category: { readonly key: "ACCESSIBILITY"; readonly labelKey: "RentalAttributesCategory.ACCESSIBILITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.higherLevelToilet.label"; }, { readonly key: "lift"; readonly category: { readonly key: "ACCESSIBILITY"; readonly labelKey: "RentalAttributesCategory.ACCESSIBILITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.lift.label"; }, { readonly key: "lowBathroomSink"; readonly category: { readonly key: "ACCESSIBILITY"; readonly labelKey: "RentalAttributesCategory.ACCESSIBILITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.lowBathroomSink.label"; }, { readonly key: "rollInShower"; readonly category: { readonly key: "ACCESSIBILITY"; readonly labelKey: "RentalAttributesCategory.ACCESSIBILITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.rollInShower.label"; }, { readonly key: "showerChair"; readonly category: { readonly key: "ACCESSIBILITY"; readonly labelKey: "RentalAttributesCategory.ACCESSIBILITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.showerChair.label"; }, { readonly key: "toiletWithGrabRails"; readonly category: { readonly key: "ACCESSIBILITY"; readonly labelKey: "RentalAttributesCategory.ACCESSIBILITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.toiletWithGrabRails.label"; }, { readonly key: "upperFloorReachableByLift"; readonly category: { readonly key: "ACCESSIBILITY"; readonly labelKey: "RentalAttributesCategory.ACCESSIBILITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.upperFloorReachableByLift.label"; }, { readonly key: "upperFloorReachableByStairsOnly"; readonly category: { readonly key: "ACCESSIBILITY"; readonly labelKey: "RentalAttributesCategory.ACCESSIBILITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.upperFloorReachableByStairsOnly.label"; }, { readonly key: "wheelchairFriendly"; readonly category: { readonly key: "ACCESSIBILITY"; readonly labelKey: "RentalAttributesCategory.ACCESSIBILITY.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.wheelchairFriendly.label"; }, { readonly key: "detached"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "PROPERTY_TYPE_LOCATION"; readonly labelKey: "RentalAttributesCategory.PROPERTY_TYPE_LOCATION.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.detached.label"; }, { readonly key: "elevation"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "PROPERTY_TYPE_LOCATION"; readonly labelKey: "RentalAttributesCategory.PROPERTY_TYPE_LOCATION.label"; }; readonly display: "value_label"; readonly labelKey: "RentalAttributes.elevation.label"; }, { readonly key: "floor"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "PROPERTY_TYPE_LOCATION"; readonly labelKey: "RentalAttributesCategory.PROPERTY_TYPE_LOCATION.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.floor.label"; readonly options: readonly [{ readonly value: "LOW_GROUND_FLOOR"; readonly labelKey: "RentalAttributes.floor.option.LOW_GROUND_FLOOR"; }, { readonly value: "LOW_AND_RAISED_GROUND_FLOOR"; readonly labelKey: "RentalAttributes.floor.option.LOW_AND_RAISED_GROUND_FLOOR"; }, { readonly value: "GROUND_FLOOR"; readonly labelKey: "RentalAttributes.floor.option.GROUND_FLOOR"; }, { readonly value: "RAISED_PARTERRE"; readonly labelKey: "RentalAttributes.floor.option.RAISED_PARTERRE"; }, { readonly value: "FLOOR_1_ST_FLOOR"; readonly labelKey: "RentalAttributes.floor.option.FLOOR_1_ST_FLOOR"; }, { readonly value: "FLOOR_2_ND_FLOOR"; readonly labelKey: "RentalAttributes.floor.option.FLOOR_2_ND_FLOOR"; }, { readonly value: "FLOOR_3_RD_FLOOR"; readonly labelKey: "RentalAttributes.floor.option.FLOOR_3_RD_FLOOR"; }, { readonly value: "FLOOR_4_TH_FLOOR"; readonly labelKey: "RentalAttributes.floor.option.FLOOR_4_TH_FLOOR"; }, { readonly value: "FLOOR_5_TH_FLOOR"; readonly labelKey: "RentalAttributes.floor.option.FLOOR_5_TH_FLOOR"; }, { readonly value: "FLOOR_6_TH_FLOOR"; readonly labelKey: "RentalAttributes.floor.option.FLOOR_6_TH_FLOOR"; }, { readonly value: "FLOOR_7_TH_FLOOR"; readonly labelKey: "RentalAttributes.floor.option.FLOOR_7_TH_FLOOR"; }, { readonly value: "FLOOR_8_TH_FLOOR"; readonly labelKey: "RentalAttributes.floor.option.FLOOR_8_TH_FLOOR"; }, { readonly value: "FLOOR_9_TH_FLOOR"; readonly labelKey: "RentalAttributes.floor.option.FLOOR_9_TH_FLOOR"; }, { readonly value: "FLOOR_10_TH_FLOOR"; readonly labelKey: "RentalAttributes.floor.option.FLOOR_10_TH_FLOOR"; }, { readonly value: "FLOOR_11_TH_FLOOR"; readonly labelKey: "RentalAttributes.floor.option.FLOOR_11_TH_FLOOR"; }, { readonly value: "FLOOR_12_TH_FLOOR"; readonly labelKey: "RentalAttributes.floor.option.FLOOR_12_TH_FLOOR"; }, { readonly value: "FLOOR_13_TH_FLOOR"; readonly labelKey: "RentalAttributes.floor.option.FLOOR_13_TH_FLOOR"; }, { readonly value: "FLOOR_14_TH_FLOOR"; readonly labelKey: "RentalAttributes.floor.option.FLOOR_14_TH_FLOOR"; }, { readonly value: "FLOOR_15_TH_FLOOR"; readonly labelKey: "RentalAttributes.floor.option.FLOOR_15_TH_FLOOR"; }]; }, { readonly key: "floorCount"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "PROPERTY_TYPE_LOCATION"; readonly labelKey: "RentalAttributesCategory.PROPERTY_TYPE_LOCATION.label"; }; readonly display: "value_label"; readonly labelKey: "RentalAttributes.floorCount.label"; }, { readonly key: "interconnectingRoomsAvailable"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "PROPERTY_TYPE_LOCATION"; readonly labelKey: "RentalAttributesCategory.PROPERTY_TYPE_LOCATION.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.interconnectingRoomsAvailable.label"; }, { readonly key: "penthouse"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "PROPERTY_TYPE_LOCATION"; readonly labelKey: "RentalAttributesCategory.PROPERTY_TYPE_LOCATION.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.penthouse.label"; }, { readonly key: "plotSize"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "PROPERTY_TYPE_LOCATION"; readonly labelKey: "RentalAttributesCategory.PROPERTY_TYPE_LOCATION.label"; }; readonly display: "value_label"; readonly labelKey: "RentalAttributes.plotSize.label"; }, { readonly key: "semiDetached"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "PROPERTY_TYPE_LOCATION"; readonly labelKey: "RentalAttributesCategory.PROPERTY_TYPE_LOCATION.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.semiDetached.label"; }, { readonly key: "yearOfConstruction"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "PROPERTY_TYPE_LOCATION"; readonly labelKey: "RentalAttributesCategory.PROPERTY_TYPE_LOCATION.label"; }; readonly display: "value_label"; readonly labelKey: "RentalAttributes.yearOfConstruction.label"; }, { readonly key: "yearOfLastRenovation"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "PROPERTY_TYPE_LOCATION"; readonly labelKey: "RentalAttributesCategory.PROPERTY_TYPE_LOCATION.label"; }; readonly display: "value_label"; readonly labelKey: "RentalAttributes.yearOfLastRenovation.label"; }, { readonly key: "nonsmoking"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "RULES_TARGET_GROUPS"; readonly labelKey: "RentalAttributesCategory.RULES_TARGET_GROUPS.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.nonsmoking.label"; }, { readonly key: "allergic"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "RULES_TARGET_GROUPS"; readonly labelKey: "RentalAttributesCategory.RULES_TARGET_GROUPS.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.allergic.label"; }, { readonly key: "genderRestriction"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "RULES_TARGET_GROUPS"; readonly labelKey: "RentalAttributesCategory.RULES_TARGET_GROUPS.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.genderRestriction.label"; readonly options: readonly [{ readonly value: "MALE_ONLY"; readonly labelKey: "RentalAttributes.genderRestriction.option.MALE_ONLY"; }, { readonly value: "FEMALE_ONLY"; readonly labelKey: "RentalAttributes.genderRestriction.option.FEMALE_ONLY"; }]; }, { readonly key: "maxAge"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "RULES_TARGET_GROUPS"; readonly labelKey: "RentalAttributesCategory.RULES_TARGET_GROUPS.label"; }; readonly display: "value_label"; readonly labelKey: "RentalAttributes.maxAge.label"; }, { readonly key: "minAge"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "RULES_TARGET_GROUPS"; readonly labelKey: "RentalAttributesCategory.RULES_TARGET_GROUPS.label"; }; readonly display: "value_label"; readonly labelKey: "RentalAttributes.minAge.label"; }, { readonly key: "minpersons"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "RULES_TARGET_GROUPS"; readonly labelKey: "RentalAttributesCategory.RULES_TARGET_GROUPS.label"; }; readonly display: "value_label"; readonly labelKey: "RentalAttributes.minpersons.label"; }, { readonly key: "youthgroups"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "RULES_TARGET_GROUPS"; readonly labelKey: "RentalAttributesCategory.RULES_TARGET_GROUPS.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.youthgroups.label"; readonly options: readonly [{ readonly value: "WELCOME"; readonly labelKey: "RentalAttributes.youthgroups.option.WELCOME"; }, { readonly value: "NOT_ALLOWED"; readonly labelKey: "RentalAttributes.youthgroups.option.NOT_ALLOWED"; }, { readonly value: "ON_REQUEST"; readonly labelKey: "RentalAttributes.youthgroups.option.ON_REQUEST"; }]; }, { readonly key: "beachview"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "VIEW"; readonly labelKey: "RentalAttributesCategory.VIEW.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.beachview.label"; }, { readonly key: "cityView"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "VIEW"; readonly labelKey: "RentalAttributesCategory.VIEW.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.cityView.label"; }, { readonly key: "countrysideView"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "VIEW"; readonly labelKey: "RentalAttributesCategory.VIEW.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.countrysideView.label"; }, { readonly key: "countrysideViewType"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "VIEW"; readonly labelKey: "RentalAttributesCategory.VIEW.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.countrysideViewType.label"; readonly options: readonly [{ readonly value: "LIMITED"; readonly labelKey: "RentalAttributes.countrysideViewType.option.LIMITED"; }, { readonly value: "GOOD"; readonly labelKey: "RentalAttributes.countrysideViewType.option.GOOD"; }, { readonly value: "EXCEPTIONALLY_GOOD"; readonly labelKey: "RentalAttributes.countrysideViewType.option.EXCEPTIONALLY_GOOD"; }]; }, { readonly key: "gardenView"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "VIEW"; readonly labelKey: "RentalAttributesCategory.VIEW.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.gardenView.label"; }, { readonly key: "innerCourtView"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "VIEW"; readonly labelKey: "RentalAttributesCategory.VIEW.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.innerCourtView.label"; }, { readonly key: "lakeview"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "VIEW"; readonly labelKey: "RentalAttributesCategory.VIEW.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.lakeview.label"; }, { readonly key: "lakeviewType"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "VIEW"; readonly labelKey: "RentalAttributesCategory.VIEW.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.lakeviewType.label"; readonly options: readonly [{ readonly value: "LIMITED"; readonly labelKey: "RentalAttributes.lakeviewType.option.LIMITED"; }, { readonly value: "GOOD"; readonly labelKey: "RentalAttributes.lakeviewType.option.GOOD"; }, { readonly value: "EXCEPTIONALLY_GOOD"; readonly labelKey: "RentalAttributes.lakeviewType.option.EXCEPTIONALLY_GOOD"; }]; }, { readonly key: "mountainview"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "VIEW"; readonly labelKey: "RentalAttributesCategory.VIEW.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.mountainview.label"; }, { readonly key: "mountainviewType"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "VIEW"; readonly labelKey: "RentalAttributesCategory.VIEW.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.mountainviewType.label"; readonly options: readonly [{ readonly value: "LIMITED"; readonly labelKey: "RentalAttributes.mountainviewType.option.LIMITED"; }, { readonly value: "GOOD"; readonly labelKey: "RentalAttributes.mountainviewType.option.GOOD"; }, { readonly value: "EXCEPTIONALLY_GOOD"; readonly labelKey: "RentalAttributes.mountainviewType.option.EXCEPTIONALLY_GOOD"; }]; }, { readonly key: "poolView"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "VIEW"; readonly labelKey: "RentalAttributesCategory.VIEW.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.poolView.label"; }, { readonly key: "quietStreetView"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "VIEW"; readonly labelKey: "RentalAttributesCategory.VIEW.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.quietStreetView.label"; }, { readonly key: "riverView"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "VIEW"; readonly labelKey: "RentalAttributesCategory.VIEW.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.riverView.label"; }, { readonly key: "seaview"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "VIEW"; readonly labelKey: "RentalAttributesCategory.VIEW.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.seaview.label"; }, { readonly key: "seaviewType"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "VIEW"; readonly labelKey: "RentalAttributesCategory.VIEW.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.seaviewType.label"; readonly options: readonly [{ readonly value: "LIMITED"; readonly labelKey: "RentalAttributes.seaviewType.option.LIMITED"; }, { readonly value: "GOOD"; readonly labelKey: "RentalAttributes.seaviewType.option.GOOD"; }, { readonly value: "EXCEPTIONALLY_GOOD"; readonly labelKey: "RentalAttributes.seaviewType.option.EXCEPTIONALLY_GOOD"; }]; }, { readonly key: "valleyView"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "VIEW"; readonly labelKey: "RentalAttributesCategory.VIEW.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.valleyView.label"; }, { readonly key: "valleyViewType"; readonly category: { readonly key: "PROPERTY_DETAILS_RULES"; readonly labelKey: "RentalAttributesCategory.PROPERTY_DETAILS_RULES.label"; }; readonly subCategory: { readonly key: "VIEW"; readonly labelKey: "RentalAttributesCategory.VIEW.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.valleyViewType.label"; readonly options: readonly [{ readonly value: "LIMITED"; readonly labelKey: "RentalAttributes.valleyViewType.option.LIMITED"; }, { readonly value: "GOOD"; readonly labelKey: "RentalAttributes.valleyViewType.option.GOOD"; }, { readonly value: "EXCEPTIONALLY_GOOD"; readonly labelKey: "RentalAttributes.valleyViewType.option.EXCEPTIONALLY_GOOD"; }]; }, { readonly key: "cds"; readonly category: { readonly key: "OTHER"; readonly labelKey: "RentalAttributesCategory.OTHER.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.cds.label"; }, { readonly key: "dvds"; readonly category: { readonly key: "OTHER"; readonly labelKey: "RentalAttributesCategory.OTHER.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.dvds.label"; }, { readonly key: "heatingSystem"; readonly category: { readonly key: "OTHER"; readonly labelKey: "RentalAttributesCategory.OTHER.label"; }; readonly display: "label_value"; readonly labelKey: "RentalAttributes.heatingSystem.label"; readonly options: readonly [{ readonly value: "CENTRAL"; readonly labelKey: "RentalAttributes.heatingSystem.option.CENTRAL"; }, { readonly value: "ELECTRONIC"; readonly labelKey: "RentalAttributes.heatingSystem.option.ELECTRONIC"; }, { readonly value: "OIL"; readonly labelKey: "RentalAttributes.heatingSystem.option.OIL"; }, { readonly value: "SOLAR"; readonly labelKey: "RentalAttributes.heatingSystem.option.SOLAR"; }, { readonly value: "GAS"; readonly labelKey: "RentalAttributes.heatingSystem.option.GAS"; }, { readonly value: "GAS_TANK"; readonly labelKey: "RentalAttributes.heatingSystem.option.GAS_TANK"; }, { readonly value: "GAS_BOTTLE"; readonly labelKey: "RentalAttributes.heatingSystem.option.GAS_BOTTLE"; }, { readonly value: "VIA_AC"; readonly labelKey: "RentalAttributes.heatingSystem.option.VIA_AC"; }, { readonly value: "OVEN"; readonly labelKey: "RentalAttributes.heatingSystem.option.OVEN"; }]; }, { readonly key: "payPerViewChannels"; readonly category: { readonly key: "OTHER"; readonly labelKey: "RentalAttributesCategory.OTHER.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.payPerViewChannels.label"; }, { readonly key: "squareMeters"; readonly category: { readonly key: "OTHER"; readonly labelKey: "RentalAttributesCategory.OTHER.label"; }; readonly display: "value_suffix"; readonly valueSuffix: "m²"; readonly labelKey: "RentalAttributes.squareMeters.label"; }, { readonly key: "stars"; readonly category: { readonly key: "OTHER"; readonly labelKey: "RentalAttributesCategory.OTHER.label"; }; readonly display: "value_label"; readonly labelKey: "RentalAttributes.stars.label"; }, { readonly key: "tvCount"; readonly category: { readonly key: "OTHER"; readonly labelKey: "RentalAttributesCategory.OTHER.label"; }; readonly display: "value_label"; readonly labelKey: "RentalAttributes.tvCount.label"; }, { readonly key: "tvInternationalChannels"; readonly category: { readonly key: "OTHER"; readonly labelKey: "RentalAttributesCategory.OTHER.label"; }; readonly display: "label_only"; readonly labelKey: "RentalAttributes.tvInternationalChannels.label"; }]; readonly roomSummary: readonly [{ readonly key: "bathrooms"; readonly category: { readonly key: "roomSummary"; readonly labelKey: "RentalSummary.roomSummary.label"; }; readonly display: "value_label"; readonly labelKey: "RoomSummary.bathrooms.label"; }, { readonly key: "bedrooms"; readonly category: { readonly key: "roomSummary"; readonly labelKey: "RentalSummary.roomSummary.label"; }; readonly display: "value_label"; readonly labelKey: "RoomSummary.bedrooms.label"; }, { readonly key: "livingrooms"; readonly category: { readonly key: "roomSummary"; readonly labelKey: "RentalSummary.roomSummary.label"; }; readonly display: "value_label"; readonly labelKey: "RoomSummary.livingrooms.label"; }, { readonly key: "maxAdults"; readonly category: { readonly key: "roomSummary"; readonly labelKey: "RentalSummary.roomSummary.label"; }; readonly display: "value_label"; readonly labelKey: "RoomSummary.maxAdults.label"; }, { readonly key: "maxPersons"; readonly category: { readonly key: "roomSummary"; readonly labelKey: "RentalSummary.roomSummary.label"; }; readonly display: "value_label"; readonly labelKey: "RoomSummary.maxPersons.label"; }, { readonly key: "rooms"; readonly category: { readonly key: "roomSummary"; readonly labelKey: "RentalSummary.roomSummary.label"; }; readonly display: "value_label"; readonly labelKey: "RoomSummary.rooms.label"; }]; readonly vicinity: readonly [{ readonly key: "airportdistance"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.airportdistance"; }, { readonly key: "beachaccess"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Vicinity.beachaccess.label"; }, { readonly key: "beachdistance"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.beachdistance"; }, { readonly key: "beachfront"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.beachfront"; }, { readonly key: "beachtype"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.beachtype"; readonly options: readonly [{ readonly value: "SAND"; readonly labelKey: "Vicinity.beachtype.option.SAND"; }, { readonly value: "GRAVEL"; readonly labelKey: "Vicinity.beachtype.option.GRAVEL"; }, { readonly value: "STONES"; readonly labelKey: "Vicinity.beachtype.option.STONES"; }, { readonly value: "ROCKS"; readonly labelKey: "Vicinity.beachtype.option.ROCKS"; }, { readonly value: "ROCK_PLATEAU"; readonly labelKey: "Vicinity.beachtype.option.ROCK_PLATEAU"; }]; }, { readonly key: "citydistance"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.citydistance"; }, { readonly key: "ferrydistance"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.ferrydistance"; }, { readonly key: "golfdistance"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.golfdistance"; }, { readonly key: "lakedistance"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.lakedistance"; }, { readonly key: "locAtm"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.locAtm"; }, { readonly key: "locBay"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.locBay"; }, { readonly key: "locBeach"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.locBeach"; }, { readonly key: "locCity"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.locCity"; }, { readonly key: "locDowntown"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.locDowntown"; }, { readonly key: "locForest"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.locForest"; }, { readonly key: "locGroceries"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.locGroceries"; }, { readonly key: "locHospital"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.locHospital"; }, { readonly key: "locLake"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.locLake"; }, { readonly key: "locMedicalServices"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.locMedicalServices"; }, { readonly key: "locMountain"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.locMountain"; }, { readonly key: "locOcean"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.locOcean"; }, { readonly key: "locRiver"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.locRiver"; }, { readonly key: "locRural"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.locRural"; }, { readonly key: "locVillage"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.locVillage"; }, { readonly key: "locWaterfalls"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.locWaterfalls"; }, { readonly key: "publictransportdistance"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.publictransportdistance"; }, { readonly key: "restaurantdistance"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.restaurantdistance"; }, { readonly key: "seadistance"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.seadistance"; }, { readonly key: "shoppingdistance"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.shoppingdistance"; }, { readonly key: "skidistance"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.skidistance"; }, { readonly key: "trainstationdistance"; readonly category: { readonly key: "LOCATION"; readonly labelKey: "RentalVicinityCard.section.LOCATION"; }; readonly display: "label_value"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.trainstationdistance"; }, { readonly key: "adventure"; readonly category: { readonly key: "THEMES"; readonly labelKey: "RentalVicinityCard.section.THEMES"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.adventure"; }, { readonly key: "awayFromItAll"; readonly category: { readonly key: "THEMES"; readonly labelKey: "RentalVicinityCard.section.THEMES"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.awayFromItAll"; }, { readonly key: "beach"; readonly category: { readonly key: "THEMES"; readonly labelKey: "RentalVicinityCard.section.THEMES"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.beach"; }, { readonly key: "budget"; readonly category: { readonly key: "THEMES"; readonly labelKey: "RentalVicinityCard.section.THEMES"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.budget"; }, { readonly key: "family"; readonly category: { readonly key: "THEMES"; readonly labelKey: "RentalVicinityCard.section.THEMES"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.family"; }, { readonly key: "farmHolidays"; readonly category: { readonly key: "THEMES"; readonly labelKey: "RentalVicinityCard.section.THEMES"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.farmHolidays"; }, { readonly key: "historic"; readonly category: { readonly key: "THEMES"; readonly labelKey: "RentalVicinityCard.section.THEMES"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.historic"; }, { readonly key: "holidayComplex"; readonly category: { readonly key: "THEMES"; readonly labelKey: "RentalVicinityCard.section.THEMES"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.holidayComplex"; }, { readonly key: "luxury"; readonly category: { readonly key: "THEMES"; readonly labelKey: "RentalVicinityCard.section.THEMES"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.luxury"; }, { readonly key: "romantic"; readonly category: { readonly key: "THEMES"; readonly labelKey: "RentalVicinityCard.section.THEMES"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.romantic"; }, { readonly key: "sportsActivities"; readonly category: { readonly key: "THEMES"; readonly labelKey: "RentalVicinityCard.section.THEMES"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.sportsActivities"; }, { readonly key: "touristAttractions"; readonly category: { readonly key: "THEMES"; readonly labelKey: "RentalVicinityCard.section.THEMES"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.touristAttractions"; }, { readonly key: "wellness"; readonly category: { readonly key: "THEMES"; readonly labelKey: "RentalVicinityCard.section.THEMES"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.wellness"; }, { readonly key: "archery"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.archery"; }, { readonly key: "balloonTrips"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.balloonTrips"; }, { readonly key: "basketball"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.basketball"; }, { readonly key: "beachvolleyball"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.beachvolleyball"; }, { readonly key: "billiards"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.billiards"; }, { readonly key: "birdWatching"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.birdWatching"; }, { readonly key: "boatRental"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.boatRental"; }, { readonly key: "boatTrip"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.boatTrip"; }, { readonly key: "boccie"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.boccie"; }, { readonly key: "botanicalGarden"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.botanicalGarden"; }, { readonly key: "bowling"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.bowling"; }, { readonly key: "bungeeJumping"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.bungeeJumping"; }, { readonly key: "canoeing"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.canoeing"; }, { readonly key: "carriageRides"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.carriageRides"; }, { readonly key: "church"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.church"; }, { readonly key: "cinema"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.cinema"; }, { readonly key: "climbing"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.climbing"; }, { readonly key: "cosmeticTreatments"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.cosmeticTreatments"; }, { readonly key: "crossCountrySkiing"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.crossCountrySkiing"; }, { readonly key: "culture"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.culture"; }, { readonly key: "cycling"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.cycling"; }, { readonly key: "danceCourses"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.danceCourses"; }, { readonly key: "daySpa"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.daySpa"; }, { readonly key: "deepseaFisching"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.deepseaFisching"; }, { readonly key: "disco"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.disco"; }, { readonly key: "diving"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.diving"; }, { readonly key: "dutyfree"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.dutyfree"; }, { readonly key: "festivals"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.festivals"; }, { readonly key: "fishing"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.fishing"; }, { readonly key: "fitnessTraining"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.fitnessTraining"; }, { readonly key: "football"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.football"; }, { readonly key: "gambling"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.gambling"; }, { readonly key: "golf"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.golf"; }, { readonly key: "gymnastics"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.gymnastics"; }, { readonly key: "helicopterTours"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.helicopterTours"; }, { readonly key: "hiking"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.hiking"; }, { readonly key: "horsebackRiding"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.horsebackRiding"; }, { readonly key: "iceSkating"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.iceSkating"; }, { readonly key: "jetSkiing"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.jetSkiing"; }, { readonly key: "jogging"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.jogging"; }, { readonly key: "kayaking"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.kayaking"; }, { readonly key: "library"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.library"; }, { readonly key: "massages"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.massages"; }, { readonly key: "minigolf"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.minigolf"; }, { readonly key: "mountainbiking"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.mountainbiking"; }, { readonly key: "museums"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.museums"; }, { readonly key: "nordicWalking"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.nordicWalking"; }, { readonly key: "nudeBeach"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.nudeBeach"; }, { readonly key: "paragliding"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.paragliding"; }, { readonly key: "parasailing"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.parasailing"; }, { readonly key: "pilates"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.pilates"; }, { readonly key: "playgroundActivity"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.playgroundActivity"; }, { readonly key: "qiGong"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.qiGong"; }, { readonly key: "rafting"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.rafting"; }, { readonly key: "restaurants"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.restaurants"; }, { readonly key: "rowing"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.rowing"; }, { readonly key: "ruins"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.ruins"; }, { readonly key: "sailing"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.sailing"; }, { readonly key: "shopping"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.shopping"; }, { readonly key: "sightSeeing"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.sightSeeing"; }, { readonly key: "skialpine"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.skialpine"; }, { readonly key: "sledding"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.sledding"; }, { readonly key: "snorkeling"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.snorkeling"; }, { readonly key: "snowboarding"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.snowboarding"; }, { readonly key: "spelunking"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.spelunking"; }, { readonly key: "squash"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.squash"; }, { readonly key: "surfing"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.surfing"; }, { readonly key: "swimming"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.swimming"; }, { readonly key: "synagogues"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.synagogues"; }, { readonly key: "tableTennis"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.tableTennis"; }, { readonly key: "tennis"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.tennis"; }, { readonly key: "theater"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.theater"; }, { readonly key: "themeParks"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.themeParks"; }, { readonly key: "trekking"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.trekking"; }, { readonly key: "walking"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.walking"; }, { readonly key: "waterParks"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.waterParks"; }, { readonly key: "waterSki"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.waterSki"; }, { readonly key: "waterSport"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.waterSport"; }, { readonly key: "wellnessActivity"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.wellnessActivity"; }, { readonly key: "whaleWatching"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.whaleWatching"; }, { readonly key: "windSurfing"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.windSurfing"; }, { readonly key: "yoga"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.yoga"; }, { readonly key: "zoo"; readonly category: { readonly key: "ACTIVITY"; readonly labelKey: "RentalVicinityCard.section.ACTIVITY"; }; readonly display: "label_only"; readonly valueSuffix: "m"; readonly labelKey: "Rental.vicinity.zoo"; }]; }; //#endregion //#region src/config/rental-scope.d.ts type RentalScope = { readonly propertyId?: string; }; //#endregion //#region src/config/translation-overrides.d.ts type TranslationCatalog = Record; type TranslationOverrides = Partial>; //#endregion //#region src/config/v10-rate-budget.d.ts /** * How often a v10 adapter may start a PMS request, and how many may wait for their turn. * Booking, search, quote, availability, contact and feedback each keep one limiter per * runtime with this budget; a consumer that keeps one runtime per PMS token shares it between * all of that tenant's users on the process. */ type V10RateBudget = { /** Minimum time between two request starts. */ readonly interval: Duration.Input; /** Requests waiting or running at once; the next one fails right away. */ readonly maxQueueSize: number; }; /** * One start per second, five in flight: the budget the website SDK documents for its public * sites, where every visitor's browser is its own runtime. Server-side consumers that pool * users behind one runtime (the guest and owner portals) pass a wider budget through * `CoreSDKOptions.v10RateBudget`. */ export declare const DEFAULT_V10_RATE_BUDGET: V10RateBudget; //#endregion //#region src/config/options.d.ts type RentalMetadataCatalog = typeof GENERATED_RENTAL_METADATA_CATALOG; type RentalHighlightPrioritizationKey = RentalMetadataCatalog["attributes"][number]["key"] | RentalMetadataCatalog["roomSummary"][number]["key"] | RentalMetadataCatalog["vicinity"][number]["key"] | (string & {}); type RentalPropertyMetadataCatalog = typeof GENERATED_PROPERTY_METADATA_CATALOG; type RentalPropertyHighlightPrioritizationKey = RentalPropertyMetadataCatalog["attributes"][number]["key"] | RentalPropertyMetadataCatalog["vicinity"][number]["key"] | (string & {}); type CoreSDKOptions = { readonly translationOverrides?: TranslationOverrides; /** * Custom attributes, as returned by `defineCustomAttributes`. * * This is the only way to configure them. `customAttributeFilterDefinitions` * holds the two concepts that are *not* custom attributes — v9 backend filters * and compositions — so the two options cannot describe the same thing and * CA-COMPAT-001 has nothing left to disambiguate. */ readonly customAttributes?: CustomAttributeRegistrySnapshot; readonly customAttributeFilterDefinitions?: readonly CustomAttributeFilterDefinition[]; /** * Selects and orders rental highlights. This is an ordered allowlist, not a sort * over every available fact. * * Only listed keys are emitted, even when an omitted key has a source value. * `undefined` uses the SDK default; `[]` emits no rental highlights. Duplicate * keys are emitted once, and unknown, unsupported, or unresolved keys are ignored. * When multiple listed view facts have values, only the first is emitted. This * affects `highlights` only, not `attributes` or `vicinity`. */ readonly rentalHighlightPrioritization?: readonly RentalHighlightPrioritizationKey[]; /** * Selects and orders v10 property highlights. This is an ordered allowlist, not * a sort over every available fact. * * Only listed keys are emitted, even when an omitted key has a source value. * `undefined` uses the SDK default; `[]` emits no property highlights. Duplicate * keys are emitted once, and unknown, unsupported, or unresolved keys are ignored. * This affects `highlights` only, not `attributes` or `vicinity`. */ readonly rentalPropertyHighlightPrioritization?: readonly RentalPropertyHighlightPrioritizationKey[]; readonly rentalScope?: RentalScope; readonly shouldAddProposedAdditionalServiceAmount?: boolean; /** * For portfolios of up to `SEARCH_ALL_RENTALS_AT_ONCE_MAX_RESULTS` rentals: `search` * returns every result with its price in one call and takes no `cursor` or `limit`; * `mapSearch` is not available. Default `false`. */ readonly searchAllRentalsAtOnce?: boolean; /** * The PMS request budget of the v10 adapters, see `V10RateBudget`. Defaults to one start * per second with five requests in flight, which every public website keeps. A server that * serves many users through one runtime may widen it; `maxQueueSize` must be at least 1. */ readonly v10RateBudget?: Partial; }; type NormalizedCoreSDKOptions = { readonly translationOverrides?: TranslationOverrides; readonly customAttributes: CustomAttributeRegistrySnapshot; readonly customAttributeFilterDefinitions: readonly CustomAttributeFilterDefinition[]; readonly rentalHighlightPrioritization: readonly RentalHighlightPrioritizationKey[]; readonly rentalPropertyHighlightPrioritization: readonly RentalPropertyHighlightPrioritizationKey[]; readonly rentalScope: RentalScope; readonly shouldAddProposedAdditionalServiceAmount: boolean; readonly searchAllRentalsAtOnce: boolean; readonly v10RateBudget: V10RateBudget; }; /** * Parse order must never be what decides who owns a query key. A collision is * rejected here rather than left to whichever parser happens to run first. */ export declare const assertNoReservedQueryKeys: (options: CoreSDKOptions) => void; export declare const assertUniqueCustomFilterQueryKeys: (options: CoreSDKOptions) => void; export declare const assertNoNestedCustomAttributeFilterCompositions: (definitions: readonly CustomAttributeFilterDefinition[]) => void; export declare const normalizeCoreSDKOptions: (options?: CoreSDKOptions) => NormalizedCoreSDKOptions; /** * A rate budget with the defaults filled in. Throws for a queue that holds nothing or an interval * that is not a positive duration; `option` names the option in the error. The website SDK checks * its own `rateBudget`, which also drives the v9 limiters, with it. */ export declare const normalizeV10RateBudget: ({ budget, option }: { readonly budget?: Partial | undefined; readonly option?: string; }) => V10RateBudget; //#endregion //#region src/config/defaults.d.ts /** Default ordered allowlist for rental highlights; unlisted facts are not emitted. */ export declare const DEFAULT_RENTAL_HIGHLIGHT_PRIORITIZATION: readonly RentalHighlightPrioritizationKey[]; /** Default ordered allowlist for v10 property highlights; unlisted facts are not emitted. */ export declare const DEFAULT_RENTAL_PROPERTY_HIGHLIGHT_PRIORITIZATION: readonly RentalPropertyHighlightPrioritizationKey[]; //#endregion //#region src/config/v10-config.d.ts type V10CoreConfig = { readonly apiEndpoint: string; /** Full REST search endpoint, e.g. `https://search.production.v-office.io/search`. */ readonly searchEndpoint: string; readonly accessToken: string; readonly imageBaseUrl: string; }; //#endregion //#region src/codegen/v10/graphql/generated/graphql.d.ts type DateFilter = { _eq?: string | null | undefined; _gt?: string | null | undefined; _gte?: string | null | undefined; _is_null?: boolean | null | undefined; _lt?: string | null | undefined; _lte?: string | null | undefined; }; type FloatFilter = { _eq?: number | null | undefined; _gt?: number | null | undefined; _gte?: number | null | undefined; _is_null?: boolean | null | undefined; _lt?: number | null | undefined; _lte?: number | null | undefined; }; type ImportInfoFilter = { _and?: ImportInfoFilter | null | undefined; _or?: ImportInfoFilter | null | undefined; id?: IntFilter | null | undefined; imported?: DateFilter | null | undefined; source?: StringFilter | null | undefined; uid?: StringFilter | null | undefined; }; type IntFilter = { _eq?: number | null | undefined; _gt?: number | null | undefined; _gte?: number | null | undefined; _in?: Array | null | undefined; _is_null?: boolean | null | undefined; _lt?: number | null | undefined; _lte?: number | null | undefined; _not_in?: Array | null | undefined; }; type LocaleStringFilter = { af?: StringFilter | null | undefined; ak?: StringFilter | null | undefined; am?: StringFilter | null | undefined; an?: StringFilter | null | undefined; ar?: StringFilter | null | undefined; as?: StringFilter | null | undefined; ay?: StringFilter | null | undefined; az?: StringFilter | null | undefined; be?: StringFilter | null | undefined; bg?: StringFilter | null | undefined; bh?: StringFilter | null | undefined; bm?: StringFilter | null | undefined; bn?: StringFilter | null | undefined; br?: StringFilter | null | undefined; bs?: StringFilter | null | undefined; ca?: StringFilter | null | undefined; co?: StringFilter | null | undefined; cs?: StringFilter | null | undefined; cy?: StringFilter | null | undefined; da?: StringFilter | null | undefined; de?: StringFilter | null | undefined; dv?: StringFilter | null | undefined; ee?: StringFilter | null | undefined; el?: StringFilter | null | undefined; en?: StringFilter | null | undefined; eo?: StringFilter | null | undefined; es?: StringFilter | null | undefined; et?: StringFilter | null | undefined; eu?: StringFilter | null | undefined; fa?: StringFilter | null | undefined; fi?: StringFilter | null | undefined; fo?: StringFilter | null | undefined; fr?: StringFilter | null | undefined; fy?: StringFilter | null | undefined; ga?: StringFilter | null | undefined; gd?: StringFilter | null | undefined; gl?: StringFilter | null | undefined; gn?: StringFilter | null | undefined; gu?: StringFilter | null | undefined; ha?: StringFilter | null | undefined; he?: StringFilter | null | undefined; hi?: StringFilter | null | undefined; hr?: StringFilter | null | undefined; ht?: StringFilter | null | undefined; hu?: StringFilter | null | undefined; hy?: StringFilter | null | undefined; ia?: StringFilter | null | undefined; id?: StringFilter | null | undefined; ig?: StringFilter | null | undefined; is?: StringFilter | null | undefined; it?: StringFilter | null | undefined; ja?: StringFilter | null | undefined; jv?: StringFilter | null | undefined; ka?: StringFilter | null | undefined; kk?: StringFilter | null | undefined; km?: StringFilter | null | undefined; kn?: StringFilter | null | undefined; ko?: StringFilter | null | undefined; ku?: StringFilter | null | undefined; ky?: StringFilter | null | undefined; la?: StringFilter | null | undefined; lb?: StringFilter | null | undefined; lg?: StringFilter | null | undefined; ln?: StringFilter | null | undefined; lo?: StringFilter | null | undefined; lt?: StringFilter | null | undefined; lv?: StringFilter | null | undefined; mg?: StringFilter | null | undefined; mi?: StringFilter | null | undefined; mk?: StringFilter | null | undefined; ml?: StringFilter | null | undefined; mn?: StringFilter | null | undefined; mr?: StringFilter | null | undefined; ms?: StringFilter | null | undefined; mt?: StringFilter | null | undefined; my?: StringFilter | null | undefined; nb?: StringFilter | null | undefined; ne?: StringFilter | null | undefined; nl?: StringFilter | null | undefined; nn?: StringFilter | null | undefined; no?: StringFilter | null | undefined; ny?: StringFilter | null | undefined; oc?: StringFilter | null | undefined; om?: StringFilter | null | undefined; or?: StringFilter | null | undefined; pa?: StringFilter | null | undefined; pl?: StringFilter | null | undefined; ps?: StringFilter | null | undefined; pt?: StringFilter | null | undefined; qu?: StringFilter | null | undefined; rm?: StringFilter | null | undefined; ro?: StringFilter | null | undefined; ru?: StringFilter | null | undefined; rw?: StringFilter | null | undefined; sa?: StringFilter | null | undefined; sd?: StringFilter | null | undefined; si?: StringFilter | null | undefined; sk?: StringFilter | null | undefined; sl?: StringFilter | null | undefined; sm?: StringFilter | null | undefined; sn?: StringFilter | null | undefined; so?: StringFilter | null | undefined; sq?: StringFilter | null | undefined; sr?: StringFilter | null | undefined; st?: StringFilter | null | undefined; su?: StringFilter | null | undefined; sv?: StringFilter | null | undefined; sw?: StringFilter | null | undefined; ta?: StringFilter | null | undefined; te?: StringFilter | null | undefined; tg?: StringFilter | null | undefined; th?: StringFilter | null | undefined; ti?: StringFilter | null | undefined; tk?: StringFilter | null | undefined; tl?: StringFilter | null | undefined; tn?: StringFilter | null | undefined; to?: StringFilter | null | undefined; tr?: StringFilter | null | undefined; ts?: StringFilter | null | undefined; tt?: StringFilter | null | undefined; tw?: StringFilter | null | undefined; ug?: StringFilter | null | undefined; uk?: StringFilter | null | undefined; ur?: StringFilter | null | undefined; uz?: StringFilter | null | undefined; vi?: StringFilter | null | undefined; wa?: StringFilter | null | undefined; wo?: StringFilter | null | undefined; xh?: StringFilter | null | undefined; yi?: StringFilter | null | undefined; yo?: StringFilter | null | undefined; zh?: StringFilter | null | undefined; zu?: StringFilter | null | undefined; }; type OptionFilter = { _eq?: string | null | undefined; _in?: Array | null | undefined; _is_null?: boolean | null | undefined; _not_in?: Array | null | undefined; }; type StringFilter = { _eq?: string | null | undefined; _ilike?: string | null | undefined; _in?: Array | null | undefined; _is_null?: boolean | null | undefined; _not_in?: Array | null | undefined; }; type customattributes_ContainsStringFilter = { _contains?: Array | null | undefined; _contains_one_of?: Array | null | undefined; _is_null?: boolean | null | undefined; _not_contains?: Array | null | undefined; _not_contains_one_of?: Array | null | undefined; }; type customattributes_CustomAttributeDefinitionFilter = { _and?: customattributes_CustomAttributeDefinitionFilter | null | undefined; _or?: customattributes_CustomAttributeDefinitionFilter | null | undefined; created?: DateFilter | null | undefined; id?: OptionFilter | null | undefined; importInfo?: ImportInfoFilter | null | undefined; key?: StringFilter | null | undefined; keyNames?: LocaleStringFilter | null | undefined; numberTypes?: OptionFilter | null | undefined; options?: customattributes_ContainsStringFilter | null | undefined; readWorkspaceIds?: customattributes_ContainsStringFilter | null | undefined; serial?: FloatFilter | null | undefined; type?: OptionFilter | null | undefined; updated?: DateFilter | null | undefined; validFrom?: DateFilter | null | undefined; validTo?: DateFilter | null | undefined; version?: IntFilter | null | undefined; visibility?: OptionFilter | null | undefined; workspaceId?: OptionFilter | null | undefined; writeWorkspaceIds?: customattributes_ContainsStringFilter | null | undefined; }; //#endregion //#region src/errors/index.d.ts declare const CoreSDKError_base: Schema.Class; readonly operation: Schema.String; readonly message: Schema.String; readonly cause: Schema.optionalKey; }>, import("effect/Cause").YieldableError>; export declare class CoreSDKError extends CoreSDKError_base {} //#endregion //#region src/services/endpoints/availability-service.d.ts declare const AvailabilityService_base: Context.ServiceClass Effect.Effect; readonly getStartDateSelectedAvailability: (input: AvailabilityGetStartDateSelectedAvailabilityInput) => Effect.Effect; readonly getPricesByDay: (input: AvailabilityGetPricesByDayInput) => Effect.Effect; }>; export declare class AvailabilityService extends AvailabilityService_base {} //#endregion //#region src/services/endpoints/booking-service.d.ts declare const BookingService_base: Context.ServiceClass Effect.Effect; /** * The bank account the booking output's `bank_transfer` payment options will show, * read from the PMS's primary document settings without creating a booking. At most * one entry; empty when the account offers no bank transfer. Optional so that existing implementations of this service * keep compiling; the v10 live layer provides it. */ readonly getBankTransferDetails?: () => Effect.Effect, CoreSDKError>; readonly blockPeriod?: (input: BookingBlockPeriodInput) => Effect.Effect; readonly listBooking: (input: BookingListBookingInput) => Effect.Effect, CoreSDKError>; readonly listByRentalIds: (input: BookingListByRentalIdsInput) => Effect.Effect; readonly findByIdAndRentalIds: (input: BookingFindByIdAndRentalIdsInput) => Effect.Effect; readonly getByIdAndRentalIds: (input: BookingFindByIdAndRentalIdsInput) => Effect.Effect; readonly getBooking: (input: BookingGetBookingInput) => Effect.Effect; readonly confirmBooking: (input: BookingConfirmBookingInput) => Effect.Effect; readonly initiateBookingPayment: (input: BookingInitiateBookingPaymentInput) => Effect.Effect; readonly listTaxGuests: (input: BookingListTaxGuestsInput) => Effect.Effect, CoreSDKError>; readonly insertTaxGuest: (input: BookingInsertTaxGuestInput) => Effect.Effect; readonly updateTaxGuest: (input: BookingUpdateTaxGuestInput) => Effect.Effect; readonly deleteTaxGuests: (input: BookingDeleteTaxGuestsInput) => Effect.Effect; readonly getModification: (input: BookingModificationGetInput) => Effect.Effect; readonly setModificationAdditionalServiceQuantity: (input: BookingModificationSetAdditionalServiceQuantityInput) => Effect.Effect; readonly saveModification: (input: BookingModificationSaveInput) => Effect.Effect; }>; export declare class BookingService extends BookingService_base {} //#endregion //#region src/services/endpoints/contact-service.d.ts declare const ContactService_base: Context.ServiceClass Effect.Effect; readonly listContact: (input: ContactListContactInput) => Effect.Effect; readonly getProfile: (input: ContactGetProfileInput) => Effect.Effect; readonly updateProfile: (input: ContactUpdateProfileInput) => Effect.Effect; }>; export declare class ContactService extends ContactService_base {} //#endregion //#region src/services/endpoints/documents-service.d.ts declare const DocumentsService_base: Context.ServiceClass Effect.Effect; }>; export declare class DocumentsService extends DocumentsService_base {} //#endregion //#region src/services/endpoints/feedback-service.d.ts declare const FeedbackService_base: Context.ServiceClass Effect.Effect; /** * Guest reviews of one rental an owner may see (cleared `OWNER` or `PUBLIC` in the PMS), per * criterion, optionally restricted to stays inside `stayPeriods`. Reads `feedback_listAnswer` * and therefore needs a backend token; the website token is refused. The website's public * reviews stay on `RentalService.getRentals` / `getDetailsByIds`. Optional so that existing * implementations of this service keep compiling; the v10 live layer provides it. */ readonly listRentalReviews?: (input: RentalReviewsInput) => Effect.Effect; readonly submitBookingFeedback: (input: SubmitBookingFeedbackInput) => Effect.Effect; }>; export declare class FeedbackService extends FeedbackService_base {} //#endregion //#region src/services/endpoints/filter-service.d.ts declare const FilterService_base: Context.ServiceClass Effect.Effect; }>; export declare class FilterService extends FilterService_base {} //#endregion //#region src/services/endpoints/invoice-service.d.ts declare const InvoiceService_base: Context.ServiceClass Effect.Effect; readonly requestFileDownload: (input: InvoiceRequestFileDownloadInput) => Effect.Effect; /** * Download links for several files in as few PMS round trips as the mutation allows, one * result per requested id in request order (a repeated id is asked for once and answered at * every position); fails when the PMS leaves an id out. Optional so that existing * implementations of this service keep compiling; the v10 live layer provides it. */ readonly requestFileDownloads?: (input: InvoiceRequestFileDownloadsInput) => Effect.Effect; }>; export declare class InvoiceService extends InvoiceService_base {} //#endregion //#region src/services/endpoints/owner-service.d.ts declare const OwnerService_base: Context.ServiceClass Effect.Effect; readonly listSettlementsByContractIds: (input: OwnerListSettlementsByContractIdsInput) => Effect.Effect; readonly listDisbursementsByRentalIds: (input: OwnerListDisbursementsByRentalIdsInput) => Effect.Effect; }>; export declare class OwnerService extends OwnerService_base {} //#endregion //#region src/services/endpoints/quote-service.d.ts type GuestQuoteSelectionEffect = Effect.Effect; type GuestQuoteInsuranceRefresher = (quote: GuestQuote) => Effect.Effect; export declare const withGuestQuoteInsuranceRefresh: ({ result, refreshInsurance }: { readonly result: QuoteAddAdditionalServiceOutput; readonly refreshInsurance: GuestQuoteInsuranceRefresher; }) => GuestQuoteSelectionEffect; export declare const refreshGuestQuoteInsurancePassthrough: GuestQuoteInsuranceRefresher; declare const QuoteService_base: Context.ServiceClass Effect.Effect; readonly addAdditionalService: (input: QuoteAddAdditionalServiceInput) => Effect.Effect; readonly removeAdditionalService: (input: QuoteRemoveAdditionalServiceInput) => Effect.Effect; readonly clearAdditionalServices: (input: QuoteClearAdditionalServicesInput) => Effect.Effect; readonly selectCancellationPolicy: (input: QuoteSelectCancellationPolicyInput) => Effect.Effect; readonly selectInsurance: (input: QuoteSelectInsuranceInput) => Effect.Effect; readonly createInsurancePreContract: (input: QuoteCreateInsurancePreContractInput) => Effect.Effect; readonly selectInsurancePayment: (input: QuoteSelectInsurancePaymentInput) => Effect.Effect; readonly bookInsurance: (input: QuoteBookInsuranceInput) => Effect.Effect; }>; export declare class QuoteService extends QuoteService_base {} //#endregion //#region src/services/endpoints/regions-service.d.ts declare const RegionsService_base: Context.ServiceClass Effect.Effect; }>; export declare class RegionsService extends RegionsService_base {} //#endregion //#region src/services/endpoints/rental-service.d.ts declare const RentalService_base: Context.ServiceClass Effect.Effect; readonly getDetailsByIds: (input: RentalGetDetailsByIdsInput) => Effect.Effect; }>; export declare class RentalService extends RentalService_base {} //#endregion //#region src/services/endpoints/search-service.d.ts declare const SearchService_base: Context.ServiceClass Effect.Effect; /** * Every rental the search matches, with its location and without prices. Optional * on the service shape so custom implementations keep compiling; the v10 live * layer provides it. */ readonly mapSearch?: (input: SearchMapSearchInput) => Effect.Effect; }>; export declare class SearchService extends SearchService_base {} //#endregion //#region src/services/utils/graphql-transport.d.ts type GraphQLTransportRequest = { readonly source: "v10"; readonly url: string; readonly headers: Readonly>; readonly query: string; readonly variables: Variables; }; type GraphQLTransportResponse = { readonly data?: Data; readonly errors?: readonly unknown[]; }; declare const GraphQLTransport_base: Context.ServiceClass(request: GraphQLTransportRequest) => Effect.Effect, CoreSDKError>; }>; export declare class GraphQLTransport extends GraphQLTransport_base {} export declare const FetchGraphQLTransportLive: Layer.Layer; //#endregion //#region src/services/utils/graphql-retry.d.ts export declare const transientGraphQLRetrySchedule: Schedule.Schedule; //#endregion //#region src/services/utils/rate-limit.d.ts type RateLimiter = (effect: Effect.Effect) => Effect.Effect; type MinIntervalLimiterOptions = { readonly interval: Duration.Input; readonly maxQueueSize?: number; readonly onQueueFull: (maxQueueSize: number) => EQueue; }; /** * The budget the v10 adapters read when they build their limiter. A reference with the * documented default, so a layer built without it (tests, the website SDK) keeps one start * per second and five in flight; `makeV10CoreLayer` provides the budget from the options. */ export declare const V10RateBudgetRef: Context.Reference; export declare const makeMinIntervalLimiter: (args_0: MinIntervalLimiterOptions) => Effect.Effect, never, never>; //#endregion //#region src/services/utils/rest-transport.d.ts type RestTransportRequest = { readonly source: "v10"; readonly operation: string; readonly url: string; readonly headers: Readonly>; readonly body: unknown; }; declare const RestTransport_base: Context.ServiceClass Effect.Effect; }>; export declare class RestTransport extends RestTransport_base {} export declare const FetchRestTransportLive: Layer.Layer; //#endregion //#region src/services/utils/translation-service.d.ts declare const TranslationService_base: Context.ServiceClass Effect.Effect; }>; export declare class TranslationService extends TranslationService_base {} type TranslationServiceShape = Context.Service.Shape; export declare const makeTranslationLive: (overrides?: TranslationOverrides) => Layer.Layer; //#endregion //#region src/services/utils/contact-submit-validation.d.ts type ContactSubmitValidationIssueCode = "required" | "invalid_email" | "invalid_country_code" | "too_long"; type ContactSubmitValidationIssue = { readonly path: string; readonly code: ContactSubmitValidationIssueCode; readonly message: string; }; export declare const validateContactSubmitInput: ({ input, translations }: { readonly input: ContactSubmitInput; readonly translations: TranslationServiceShape; }) => Effect.Effect; //#endregion //#region src/adapters/v10/graphql/client.d.ts declare const V10GraphQLClient_base: Context.ServiceClass(document: TypedDocumentNode, variables: Variables) => Effect.Effect; }>; export declare class V10GraphQLClient extends V10GraphQLClient_base {} type V10GraphQLClientShape = Context.Service.Shape; export declare const makeV10GraphQLClientLive: (config: V10CoreConfig) => Layer.Layer; //#endregion //#region src/adapters/v10/graphql/decode-response.d.ts export declare const decodeGraphQLResponse: (body: GraphQLTransportResponse) => Effect.Effect; //#endregion //#region src/adapters/v10/custom-attribute-catalog.d.ts /** * The read as an Effect, for composition inside an existing v10 runtime. * * `where` is passed through to the definitions API so a consumer can scope the * read server-side — for example to the backend types the SDK supports — instead * of transferring every definition the workspace has. It cannot widen the read * beyond public definitions: that is a property of the operation, not the filter. */ export declare const fetchV10CustomAttributeCatalog: (options?: { readonly where?: customattributes_CustomAttributeDefinitionFilter; }) => Effect.Effect; /** * Self-contained read for a build script: builds a minimal transport and client, * runs the read, and disposes the runtime. * * Call this once per build and hand the result to `defineCustomAttributes`. A * failure rejects, so the build stops rather than shipping a site whose * custom-attribute filters silently vanished (CA-BUILD-005). */ export declare const fetchCustomAttributeCatalog: ({ config, where }: { readonly config: V10CoreConfig; readonly where?: customattributes_CustomAttributeDefinitionFilter; }) => Promise; //#endregion //#region src/adapters/v10/layer.d.ts export declare const makeV10CoreLayer: ({ config, options }: { readonly config: V10CoreConfig; readonly options: NormalizedCoreSDKOptions; }) => Layer.Layer; //#endregion //#region src/adapters/v10/live/availability/index.d.ts export declare const makeV10AvailabilityLive: Layer.Layer; //#endregion //#region src/adapters/v10/live/booking/index.d.ts export declare const V10BookingLive: Layer.Layer; //#endregion //#region src/adapters/v10/live/contact/index.d.ts export declare const V10ContactLive: Layer.Layer; //#endregion //#region src/adapters/v10/live/feedback/index.d.ts export declare const V10FeedbackLive: Layer.Layer; //#endregion //#region src/adapters/v10/live/invoice/index.d.ts export declare const V10InvoiceLive: Layer.Layer; //#endregion //#region src/adapters/v10/live/partner/index.d.ts export declare const makeV10OwnerLive: ({ config }: { readonly config: V10CoreConfig; }) => Layer.Layer; //#endregion //#region src/adapters/v10/live/quote.d.ts export declare const makeV10QuoteLive: ({ options }: { readonly options: NormalizedCoreSDKOptions; }) => Layer.Layer; //#endregion //#region src/adapters/v10/live/search.d.ts export declare const makeV10SearchLive: ({ config, options }: { config: V10CoreConfig; options: NormalizedCoreSDKOptions; }) => Layer.Layer; //#endregion //#region src/adapters/shared/parser/attribute-value.d.ts export declare const renderLabeledAttributeValue: ({ key, label, locale, value }: { key: string; label: string; locale: Locale; value: unknown; }) => string | undefined; //#endregion //#region src/adapters/shared/parser/custom-attribute-filter.d.ts /** * `getFilters` must return at most one item per query key (CA-FILTER-003). * * Generated filters, custom attributes, backend filters and compositions are * independent sources, and the assembled output is the one place all of them are * visible at once. A duplicate means two filters fight over the same query * parameter, which parse order would otherwise resolve invisibly. */ export declare const assertUniqueFilterQueryKeys: ({ filterItems, source }: { filterItems: readonly FilterGetFiltersOutput[number][]; source: CoreSDKError["source"]; }) => Effect.Effect; export declare const toCustomAttributeFilterOutputItem: ({ category, definition, locale }: { category?: string; definition: CustomAttributeFilterDefinition; locale: Locale; }) => FilterGetFiltersOutput[number] | undefined; //#endregion //#region src/adapters/shared/parser/resolved-custom-attribute.d.ts /** * Base-10 integers only. Whitespace, fractions, exponent notation, and radix * prefixes are all rejected rather than coerced (CA-TYPE section 10). */ export declare const toCanonicalIntValue: (value: unknown) => number | undefined; /** * Renders a value for the attribute list or a highlight. * * Returns `undefined` when the attribute must not be shown at all — the backend * marks it private, product policy disables display, or the value is absent or * cannot be read as the declared type. */ export declare const renderResolvedCustomAttribute: ({ attribute, locale, value }: { attribute: ResolvedCustomAttribute; locale: Locale; value: unknown; }) => string | undefined; /** Label for an applied filter, using the same labels `getFilters` advertises. */ export declare const toResolvedCustomAttributeFilterLabel: ({ attribute, locale, value }: { attribute: ResolvedCustomAttribute; locale: Locale; value?: string; }) => string; /** * Translation key for an attribute's category, used for both `getFilters` * grouping and attribute-list grouping so the two cannot drift (CA-DISPLAY-004). * * Custom attribute categories are the generated search-filter category keys, and * every one of them is published under this convention — the same one the * generated catalog and the hand-written `V10_MAPPED_SEARCH_FILTERS` already use. * Deriving the key keeps this total over `CUSTOM_ATTRIBUTE_CATEGORY_KEYS` without * pulling the full search-filter catalog into the rental render path. */ export declare const toResolvedCustomAttributeCategoryTranslationKey: (category: string) => string; /** * A `getFilters` item, or `undefined` when the attribute is not a public filter. * * `requiresBackendId` is set by the v10 adapter: a public filter with no catalog * definition ID cannot be executed, so advertising it would guarantee an unused * key (CA-FILTER-001). v9 passes nothing, because it never advertises custom * attributes at all (CA-V9-003). * * `category` is the already-translated category label. It is passed in rather * than resolved here because translation is an Effect and every other helper in * this module is a plain function; the caller holds the translation service. */ export declare const toResolvedCustomAttributeFilterItem: ({ attribute, locale, category, requiresBackendId }: { attribute: ResolvedCustomAttribute; locale: Locale; category: string; requiresBackendId?: boolean; }) => FilterGetFiltersOutput[number] | undefined; /** * Validates one query value against the attribute's canonical type and returns the * canonical string the backend expects, or `undefined` when the value is invalid. */ export declare const toResolvedCustomAttributeSearchValue: ({ attribute, value }: { attribute: ResolvedCustomAttribute; value: string; }) => string | undefined; //#endregion //#region src/adapters/shared/parser/localized-record.d.ts /** The language a missing text falls back to: the agencies write their texts in German first. */ export declare const FALLBACK_LOCALE = "de-DE"; /** * A text from a record by language, in `locale`. Without one, the German text with `fallback` * set, so a site can mark it as German. Never a third language: a site could not say which it is. */ export declare const toLocalizedText: (value: unknown, locale: Locale) => { readonly text: string; readonly fallback?: typeof FALLBACK_LOCALE; } | undefined; //#endregion //#region src/adapters/shared/parser/period-query-date.d.ts export declare const toIsoDateFromPeriodQueryDate: (value: string) => LocalDateString | undefined; //#endregion //#region src/adapters/shared/parser/locale.d.ts export declare const localeToLanguage: (locale: Locale) => string; //#endregion //#region src/adapters/shared/parser/translation.d.ts export declare const makeTranslate: (translations: TranslationServiceShape, locale: Locale) => (key: string, fallback: string) => import("effect/Effect").Effect; /** * The key of a count's label in its plural form, for "