export declare function getCookie(name: string): string;
export declare const useAnalytics: () => {
    track: (event: TrackEvent) => Promise<import("axios").AxiosResponse<any, any> | undefined>;
};
export type TrackEvent = TrackEvent.SearchEvent | TrackEvent.ZeroResultsEvent | TrackEvent.ViewProductEvent | TrackEvent.ClickProductEvent | TrackEvent.ViewPromotionEvent | TrackEvent.ClickPromotionEvent | TrackEvent.PaginationChangeEvent | TrackEvent.SortChangeEvent | TrackEvent.FilterChangeEvent;
export declare namespace TrackEvent {
    interface SearchEvent {
        eventName: "search";
        payload: SearchEvent.Payload;
    }
    namespace SearchEvent {
        interface Payload {
            searchTerm: string;
        }
    }
    interface ZeroResultsEvent {
        eventName: "zeroResults";
        payload: ZeroResultsEvent.Payload;
    }
    namespace ZeroResultsEvent {
        interface Payload {
            searchTerm: string;
        }
    }
    interface ViewProductEvent {
        eventName: "viewProduct";
        payload: ViewProductEvent.Payload;
    }
    namespace ViewProductEvent {
        interface Payload {
            elasticProduct: ElasticProduct;
        }
    }
    interface ClickProductEvent {
        eventName: "clickProduct";
        payload: ClickProductEvent.Payload;
    }
    namespace ClickProductEvent {
        interface Payload {
            elasticProduct: ElasticProduct;
        }
    }
    interface ViewPromotionEvent {
        eventName: "viewPromotion";
        payload: ViewPromotionEvent.Payload;
    }
    namespace ViewPromotionEvent {
        interface Payload {
            link: string;
            title: string;
        }
    }
    interface ClickPromotionEvent {
        eventName: "clickPromotion";
        payload: ClickPromotionEvent.Payload;
    }
    namespace ClickPromotionEvent {
        interface Payload {
            link: string;
            title: string;
        }
    }
    interface PaginationChangeEvent {
        eventName: "paginationChange";
        payload: PaginationChangeEvent.Payload;
    }
    namespace PaginationChangeEvent {
        interface Payload {
            page: number;
            source: "search" | "collection";
        }
    }
    interface SortChangeEvent {
        eventName: "sortChange";
        payload: SortChangeEvent.Payload;
    }
    namespace SortChangeEvent {
        interface Payload {
            type: string;
        }
    }
    interface FilterChangeEvent {
        eventName: "filterChange";
        payload: FilterChangeEvent.Payload;
    }
    namespace FilterChangeEvent {
        interface Payload {
            name: string;
            value: string;
        }
    }
    interface ElasticProduct {
        id: number;
        title: string;
    }
}
