/**
 * useProductAnalytics – analytics event binding hook for custom components
 *
 * Returns event handler props ready to spread onto any element, plus imperative
 * tracking methods. Builds on existing useAnalytics infrastructure.
 */
import type { SeekoraClient, SearchContext } from '@seekora-ai/search-sdk';
import type { ProductItem, ProductVariant } from '@seekora-ai/ui-sdk-types';
export interface UseProductAnalyticsOptions {
    client: SeekoraClient;
    product: ProductItem;
    position?: number;
    section?: string;
    tabId?: string;
    query?: string;
    context?: SearchContext | Partial<SearchContext>;
    enabled?: boolean;
}
export interface UseProductAnalyticsReturn {
    /** Spread onto any clickable element to track product click */
    clickProps: {
        onClick: (e?: React.MouseEvent) => void;
        'data-seekora-product-id': string;
        'data-seekora-position': number;
    };
    /** Spread onto any element to track variant selection */
    variantSelectProps: (optionName: string, value: string) => {
        onClick: (e?: React.MouseEvent) => void;
        'data-seekora-variant-option': string;
        'data-seekora-variant-value': string;
    };
    /** Spread onto any element to track add-to-cart */
    addToCartProps: (variant?: ProductVariant) => {
        onClick: (e?: React.MouseEvent) => void;
        'data-seekora-action': 'add-to-cart';
    };
    /** Spread onto any element to track impression (uses IntersectionObserver) */
    impressionRef: React.RefCallback<HTMLElement>;
    /** Imperative: track product click */
    trackClick: () => void;
    /** Imperative: track variant select */
    trackVariantSelect: (optionName: string, value: string) => void;
    /** Imperative: track add to cart */
    trackAddToCart: (variant?: ProductVariant) => void;
    /** Imperative: track custom event with product context */
    trackCustomEvent: (eventName: string, metadata?: Record<string, any>) => void;
}
export declare function useProductAnalytics({ client, product, position, section, tabId, query, context, enabled, }: UseProductAnalyticsOptions): UseProductAnalyticsReturn;
//# sourceMappingURL=useProductAnalytics.d.ts.map