import { ReservationDTO, ReservationsDTO } from '@roomstay/core';
import BasketAddonRow from '../../models/BasketAddonRow';
import BasketRow from '../../models/BasketRow';
import { DateRange, GenericAnalyticsAccommodation } from '../DataLayer';
import { Analytics, IAnalyticMessageEvent } from './Analytics';
declare class UniversalAnalytics extends Analytics {
    private getProductInfo;
    private generateAddonProductInfo;
    generateRoomImpressionMessageObject(impressions: GenericAnalyticsAccommodation[]): {
        event: string;
        ecommerce: {
            currencyCode: string;
            impressions: Product[];
        };
    };
    generateProductClickMessageObject(product: GenericAnalyticsAccommodation): {
        event: string;
        ecommerce: {
            currencyCode: string;
            click: {
                products: Product[];
            };
            StartDate: string;
            EndDate: string;
        };
    };
    generateDateSelectionMessageObject(dateRange: DateRange, adults: number, children: number, infants?: number | undefined): {
        event: string;
        arrivalDate: string;
        departureDate: string;
        adultQty: string | null;
        childQty: string | null;
        infantQty: string | null;
    };
    generateAddToCartMessageObject(product: GenericAnalyticsAccommodation): {
        event: string;
        ecommerce: {
            currencyCode: string;
            add: {
                products: Product[];
            };
            StartDate: string;
            EndDate: string;
        };
    };
    generateAddonsAddToCartMessageObject(product: Required<Pick<GenericAnalyticsAccommodation, 'quantity' | 'dateRange' | 'basketAddonRow'>>): IAnalyticMessageEvent;
    generateUpsellConfirmedMessageObject(oldProduct: GenericAnalyticsAccommodation, newProduct: GenericAnalyticsAccommodation): {
        event: string;
        priceDifference: number;
        old: {
            products: Product[];
        };
        new: {
            products: Product[];
        };
    } | null;
    generateUpsellCancelledMessageObject(product: GenericAnalyticsAccommodation): {
        event: string;
        item: Product[];
    };
    generateCheckoutViewMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[]): {
        event: string;
        ecommerce: {
            currencyCode: string;
            checkout: {
                actionField: {
                    step: number;
                };
                products: Product[];
            };
            StartDate: string | undefined;
            EndDate: string | undefined;
            PageType: string;
        };
    };
    generateRoomPurchaseMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[], reservations: ReservationsDTO): IAnalyticMessageEvent[];
    generateRefundMessageObject(reservation: ReservationDTO): any;
}
declare const ua: UniversalAnalytics;
export { ua as UniversalAnalytics };
type Product = {
    name: string;
    id: string;
    price: number;
    brand: string;
    category: string;
    category2: 'Addons' | 'Rooms';
    variant?: string;
    list?: string;
    position?: number;
    quantity?: number;
};
