/** * All event namespaces. * * @export * @enum {string} */ export declare enum EventType { SessionStart = "session.start", SessionPing = "session.ping", SessionUser = "session.user", SessionCartAdd = "session.cart.add", SessionCartRemove = "session.cart.remove", PageCart = "page.cart", PageConfirmation = "page.confirmation", PageEmptyCart = "page.empty_cart", PageHome = "page.home", PageCategory = "page.category", PageCategoryClick = "page.category.click", SearchQuery = "search.query", SearchClick = "search.click", FrontView = "front.view", FrontClick = "front.click", SearchAutocompleteQuery = "search.autocomplete.query", AutocompleteClick = "search.autocomplete.click", ProductView = "page.product", NavigationView = "navigation.view", ApiClick = "api.click", MailClick = "mail.click" } /** * Generic event. * * Contains the underlying logic of sending an * event to the server. * * @export * @abstract * @class Event */ export declare abstract class Event { session: string; anonymous: string; url: string; agent: string; abstract type: EventType; /** * Creates an instance of Event. * * @param {string} [session=undefined] * @param {string} [anonymous=undefined] * @param {string} [variant=undefined] * @param {string} [url=document?.location.href || "unknown"] * @param {string} [agent=navigator?.userAgent || "unknown"] * @memberof Event */ constructor(session?: string, anonymous?: string, url?: string, agent?: string); private variant; private workspace; ab: string; /** * Push this event to the server. * * If you find yourself pushing multiple events * at the same time, see `BatchEventBuilder`. * * @return {Promise} * @memberof Event */ push(): Promise; withWorkspace(workspace: string): this; }