import { ZywaveBaseElement } from "@zywave/zywave-base"; import type { UserProperties } from "./analytics-configuration"; import type { PropertyValues } from "lit"; /** * `ZywaveAnalyticsElement` defines a configurable way to communicate with our centralized analytics tracking. Note: it's highly preferred to use `ZywaveShellElement` to do this for you; this should only be used if you cannot use `ZywaveShellElement`. * @element zywave-analytics * * @event load - Fired when analytics scripts have finished loading * * @attr {string | null} [api-base-url=null] - Provide the base URL to the Zywave APIs e.g., https://api.zywave.com/ (Note: the trailing slash is critical, especially if the base URL includes a path.) * @attr {string | null} [bearer-token=null] - (optional) Provide a Zywave bearer token for authorization * @attr {string | null} [profile-token=null] - (optional) Provide the explicit profile token that your application understands this user to be accessing * * @prop {string | null} [apiBaseUrl=null] - Provide the base URL to the Zywave APIs e.g., https://api.zywave.com/ (Note: the trailing slash is critical, especially if the base URL includes a path.) * @prop {string | null} [bearerToken=null] - (optional) Provide a Zywave bearer token for authorization * @prop {string | null} [profileToken=null] - (optional) Provide the explicit profile token that your application understands this user to be accessing */ export declare class ZywaveAnalyticsElement extends ZywaveBaseElement { #private; static get styles(): import("lit").CSSResult[]; /** * The app id to use when communicating with Heap. * If not specified, the `/shell/v2.0/analyticsinfo` API will be used. */ heapAppId: string | null; /** * The account id to use when communicating with Appcues. * If not specified, the `/shell/v2.0/analyticsinfo` API will be used. */ appcuesAccountId: string | null; /** * A uniquely identifying string for the authenticated user. For most apps, this should be in the form `${profileTypeCode}~${profileId}`. * If not specified, the `/shell/v2.0/analyticsinfo` API will be used. */ identity: string | null; /** * An optional property to directly add `userProperties` to analytics utilities. * `givenName`, `familyName`, and `email` are common properties to be used across all platforms; you can provide more properties to this object where applicable. */ userProperties: UserProperties | null; /** * If specified, will prevent scripts from loading and analytics being configured until after the document has been parsed */ defer: boolean; /** * If provided, will set the CDN host for all external script loading. * @default new URL(import.meta.url).origin */ cdnHost: string | null; /** * UNSTABLE: DO NOT USE * @ignore */ contextPath: string | null; private get _userProperties(); connectedCallback(): void; disconnectedCallback(): void; firstUpdated(changedProps: PropertyValues): Promise; render(): import("lit-html").TemplateResult<1>; /** * Method used to track custom events. * @param eventName Name of the event to track * @param payload Optional payload to pass to the event */ track(eventName: string, payload?: Record): void; } declare global { interface HTMLElementTagNameMap { "zywave-analytics": ZywaveAnalyticsElement; } }