/** * **Сервис аналитики Barneo Search Widget** * * _Предоставляет методы для отправки аналитических данных в API._ * * @module analytics-service */ import type { AuthorizeCustomerRequest, AnalyticsApiResponse } from "../types/requests"; import type { AuthorizeCustomerResponse, QueryUseResponse, FunctionalUseResponse, HintsUseResponse, ProductsUseResponse, CategoriesUseResponse } from "../types/responses"; import { SearchFunction, ProductConversionSource, ProductConversionType, CategoryConversionSource } from "../types/enums"; /** * **Конфигурация сервиса аналитики** */ export interface AnalyticsServiceConfig { /** Базовый URL для API */ baseUrl: string; /** Токен аутентификации */ token: string; /** ID клиента */ customerId: string; /** ID локации */ locationId: string; /** Версия API */ apiVersion?: string; } /** * **Сервис для работы с аналитическими API** */ export declare class AnalyticsService { private readonly baseUrl; private readonly token; private readonly customerId; private readonly locationId; private readonly apiVersion; private readonly defaultHeaders; constructor(config: AnalyticsServiceConfig); /** * Формирует полный URL для API запроса */ private buildApiUrl; /** * Выполнить HTTP запрос к API */ private makeRequest; /** * Обработка ошибок HTTP ответа */ private handleErrorResponse; /** * Обработка ошибок сети */ private handleRequestError; /** * Объединение неавторизованного и авторизованного пользователя */ authorizeCustomer(request: AuthorizeCustomerRequest): Promise>; /** * Отслеживание поискового запроса клиента */ trackQueryUse(query: string): Promise>; /** * Отслеживание использования функции поиска */ trackFunctionUse(functionName: SearchFunction): Promise>; /** * Отслеживание применения поисковой подсказки */ trackHintUse(query: string, hint: string): Promise>; /** * Отслеживание конверсии товара */ trackProductConversion(productId: string, conversion: ProductConversionType, options?: { source?: ProductConversionSource; position?: number; query?: string; }): Promise>; /** * Отслеживание конверсии категории */ trackCategoryConversion(categoryId: string, options?: { query?: string; source?: CategoryConversionSource; }): Promise>; /** * Валидация запроса авторизации клиента */ private validateAuthorizeCustomerRequest; /** * Получить ID локации */ getLocationId(): string; /** * Получить ID клиента */ getCustomerId(): string; /** * Получить информацию о конфигурации (без чувствительных данных) */ getConfigInfo(): { baseUrl: string; customerId: string; locationId: string; apiVersion: string | undefined; }; /** * Создать новый экземпляр сервиса с обновленной конфигурацией */ withConfig(updates: Partial): AnalyticsService; } //# sourceMappingURL=AnalyticsService.d.ts.map