/** * **Composable для работы с системой рекомендаций Ensi Cloud Adviser** * * Предоставляет реактивные методы для взаимодействия с API рекомендаций Ensi Cloud Adviser. * Позволяет получать умные рекомендации товаров на основе поведения пользователей. * * ## Основные возможности: * - Получение рекомендаций "People also search for this product" - что искали с этим товаром * - Получение рекомендаций "Searchers also viewed" - что смотрели искавшие * - Получение рекомендаций "Cross Sell" - с этим товаром покупают * - Получение рекомендаций "Up Sell" - более дорогие альтернативы * - Получение рекомендаций "Up Sell New" - новая версия up sell * - Получение недавно просмотренных товаров * - Получение популярных товаров * - Получение похожих товаров * - Система кэширования с настраиваемым TTL * - Автоматическая интеграция с BarneoConfigManager * * ## Пример использования: * ```typescript * import { useAdviser } from 'barneo-search-widget-lib' * * const adviser = useAdviser({ * enableCache: true, * cacheTTL: 300000, // 5 минут * apiLimit: 8 * }) * * // Получение рекомендаций * await adviser.getCrossSell('product-123') * await adviser.getPopularProducts() * ``` * * @module useAdviser */ /// /// import { type AdviserServiceConfig } from "../services/AdviserService"; import type { RecommendationProductsRequest, RecommendationQueryProductsRequest, CrossSellProductsRequest, UpSellProductsRequest, RecentlyWatchedProductsRequest, PopularProductsSearchRequest, SimilarProductsSearchRequest } from "../types/requests"; import { LoadingStatus } from "../types/enums"; /** * Интерфейс настроек советника * * Позволяет настроить поведение composable при инициализации. * Все параметры являются опциональными и имеют разумные значения по умолчанию. */ interface AdviserOptions { /** * Конфигурация сервиса (опционально, если доступен BarneoConfigManager) * Если не указана, будет автоматически получена из BarneoConfigManager */ serviceConfig?: AdviserServiceConfig; /** * Автоматическое обновление данных * @default false */ autoRefresh?: boolean; /** * Интервал обновления в миллисекундах * @default 30000 (30 секунд) */ refreshInterval?: number; /** * Максимальное количество рекомендаций для отображения * @default 10 */ maxRecommendations?: number; /** * Включить кэширование для оптимизации производительности * @default true */ enableCache?: boolean; /** * Время жизни кэша в миллисекундах * @default 300000 (5 минут) */ cacheTTL?: number; /** * Лимит записей для API запросов * @default 5 */ apiLimit?: number; } /** * Composable для работы с системой рекомендаций Ensi Cloud Adviser * * Основная функция для получения умных рекомендаций товаров на основе поведения пользователей. * Автоматически интегрируется с BarneoConfigManager для получения конфигурации API. * * ## Возвращаемые значения: * * ### Состояние: * - `state` - реактивное состояние с данными рекомендаций * - `isLoading` - вычисляемое свойство, true если идет загрузка * - `hasError` - вычисляемое свойство, true если есть ошибка * - `errorMessage` - вычисляемое свойство с текстом ошибки * - `lastUpdateTime` - вычисляемое свойство с временем последнего обновления * * ### Методы получения рекомендаций: * - `getPeopleAlsoSearch()` - что искали с этим товаром * - `getSearchersAlsoViewed()` - что смотрели искавшие * - `getCrossSell()` - с этим товаром покупают * - `getUpSell()` - более дорогие альтернативы * - `getUpSellNew()` - новая версия up sell * - `getRecentlyWatched()` - недавно просмотренные товары * - `getPopularProducts()` - популярные товары * - `getSimilarProducts()` - похожие товары * * ### Утилиты: * - `clearData()` - очистить все данные * - `refreshData()` - обновить все данные * - `clearCache()` - очистить кэш * - `forceClear()` - принудительно очистить все данные и кэш * - `startAutoRefresh()` - запустить автообновление * - `stopAutoRefresh()` - остановить автообновление * * @param options - Опциональные настройки для настройки поведения * @returns Объект с состоянием и методами для работы с рекомендациями * * @example * ```typescript * const adviser = useAdviser({ * enableCache: true, * maxRecommendations: 8, * apiLimit: 10 * }) * * // Получение рекомендаций * await adviser.getCrossSell('product-123') * await adviser.getPopularProducts() * * // Проверка состояния * console.log('Загрузка:', adviser.isLoading.value) * console.log('Ошибка:', adviser.errorMessage.value) * console.log('Данные:', adviser.state.value.crossSell) * ``` */ export declare function useAdviser(options?: Partial): { /** Реактивное состояние с данными рекомендаций (только для чтения) */ state: Readonly>; /** Вычисляемое свойство: true если идет загрузка */ isLoading: import("vue").ComputedRef; /** Вычисляемое свойство: true если есть ошибка */ hasError: import("vue").ComputedRef; /** Вычисляемое свойство: текст ошибки или null */ errorMessage: import("vue").ComputedRef; /** Вычисляемое свойство: время последнего обновления */ lastUpdateTime: import("vue").ComputedRef; /** Получить рекомендации "People also search for this product" - что искали с этим товаром */ getPeopleAlsoSearch: (productId: string, request?: Partial>) => Promise; /** Получить рекомендации "Searchers also viewed" - что смотрели искавшие */ getSearchersAlsoViewed: (query: string, request?: Partial>) => Promise; /** Получить рекомендации "Cross Sell" - с этим товаром покупают */ getCrossSell: (productId: string, request?: Partial>) => Promise; /** Получить рекомендации "Up Sell" - более дорогие альтернативы */ getUpSell: (productId: string, request?: Partial>) => Promise; /** Получить рекомендации "Up Sell New" - новая версия up sell */ getUpSellNew: (productId: string, request?: Partial>) => Promise; /** Получить недавно просмотренные товары */ getRecentlyWatched: (customerId: string, request?: Partial>) => Promise; /** Получить популярные товары */ getPopularProducts: (request?: Partial) => Promise; /** Получить похожие товары */ getSimilarProducts: (request?: Partial) => Promise; /** Очистить все данные рекомендаций */ clearData: () => void; /** Обновить все данные рекомендаций */ refreshData: () => Promise; /** Запустить автообновление данных */ startAutoRefresh: () => void; /** Остановить автообновление данных */ stopAutoRefresh: () => void; /** Очистить кэш рекомендаций */ clearCache: () => void; /** Принудительно очистить все данные и кэш */ forceClear: () => void; }; export {}; //# sourceMappingURL=useAdviser.d.ts.map