import { MessageProcessor, ProcessingPayload } from '@hawk.so/core'; /** * Addon key used to attach Yandex Metrika counters ClientIDs. */ export declare const YANDEX_METRIKA_ADDON_KEY = "yandexMetrika"; /** * Reads up to ten Yandex Metrika counter IDs, requests their ClientIDs once * during initialization, and attaches available counters ClientIDs to subsequent events. * * Important: `window.ym.a[index][0]` relies on the Metrika initialization queue * and is not a public API contract. This is acceptable for the MVP, but the SDK * should accept counter IDs explicitly in the future. * * @see https://yandex.ru/support/metrica/ru/objects/get-client-id */ export declare class YandexMetrikaAddonMessageProcessor implements MessageProcessor<'errors/javascript'> { /** * Cached Yandex Metrika counters ClientIDs keyed by their one-based queue position. */ private countersClientIds; /** * Reads up to ten initialized counters and requests their ClientIDs. */ constructor(); /** * Attaches cached Yandex Metrika counters ClientIDs when they are available. * * @param payload - event message payload to enrich * @returns {ProcessingPayload<'errors/javascript'>} enriched or original payload */ apply(payload: ProcessingPayload<'errors/javascript'>): ProcessingPayload<'errors/javascript'>; /** * Returns Yandex Metrika global function when it is installed on the page. */ private getYandexMetrika; /** * Reads initialized Yandex Metrika counters from the queue and requests ClientIDs. * * @param ym - Yandex Metrika global function. */ private collectCountersClientIds; /** * Requests ClientID for one valid Yandex Metrika counter queue entry. * * @param ym - Yandex Metrika global function. * @param queueIndex - Zero-based Metrika initialization queue entry index. */ private collectCounterClientId; /** * Returns valid counter ID from the Yandex Metrika initialization queue. * * @param ym - Yandex Metrika global function. * @param queueIndex - Zero-based Metrika initialization queue entry index. */ private getCounterIdFromQueue; /** * Converts raw counter ID from the Metrika queue to a positive integer. * * @param rawCounterId - Counter ID read from the Metrika queue. */ private parseCounterId; /** * Requests ClientID from Yandex Metrika and caches it when it is available. * * @param ym - Yandex Metrika global function. * @param queueIndex - Zero-based Metrika initialization queue entry index. * @param counterId - Yandex Metrika counter ID. */ private requestClientId; /** * Saves Yandex Metrika counter ID and ClientID under one-based queue position. * * @param queueIndex - Zero-based Metrika initialization queue entry index. * @param counterId - Yandex Metrika counter ID. * @param clientId - ClientID returned by Yandex Metrika. */ private saveCounterClientId; }