export interface AdMeshRecommendation {
    title: string;
    reason: string;
    intent_match_score: number;
    admesh_link: string;
    ad_id: string;
    product_id: string;
    url?: string;
    redirect_url?: string;
    description?: string;
    pricing?: string;
    reward_note?: string | null;
    keywords?: string[];
    categories?: string[];
    features?: string[];
    integrations?: string[];
    has_free_tier?: boolean;
    trial_days?: number;
    audience_segment?: string;
    is_ai_powered?: boolean;
    is_open_source?: boolean;
    offer_trust_score?: number;
    brand_trust_score?: number;
    reviews_summary?: string;
    security?: string[];
    slug?: string;
    support?: string[];
    badges?: string[];
}
export interface AdMeshTheme {
    mode: 'light' | 'dark';
    accentColor?: string;
    borderRadius?: string;
    fontFamily?: string;
}
export type IntentType = 'compare_products' | 'best_for_use_case' | 'trial_demo' | 'budget_conscious';
export type BadgeType = 'Top Match' | 'Free Tier' | 'AI Powered' | 'Popular' | 'New' | 'Trial Available';
export type BadgeVariant = 'primary' | 'secondary' | 'success' | 'warning';
export type BadgeSize = 'sm' | 'md' | 'lg';
export interface TrackingData {
    adId: string;
    admeshLink: string;
    userId?: string;
    sessionId?: string;
    productId?: string;
    revenue?: number;
    conversionType?: string;
    metadata?: Record<string, unknown>;
}
export interface AdMeshProductCardProps {
    recommendation: AdMeshRecommendation;
    theme?: AdMeshTheme;
    showMatchScore?: boolean;
    showBadges?: boolean;
    maxKeywords?: number;
    onClick?: (adId: string, admeshLink: string) => void;
    onTrackView?: (data: TrackingData) => void;
    className?: string;
}
export type ConversationalDisplayMode = 'inline' | 'summary' | 'floating' | 'minimal' | 'citation';
export type ConversationContext = 'chat' | 'assistant' | 'agent' | 'support';
export interface ConversationalAdConfig {
    displayMode: ConversationalDisplayMode;
    context: ConversationContext;
    maxRecommendations?: number;
    showPoweredBy?: boolean;
    autoShow?: boolean;
    delayMs?: number;
    position?: 'top' | 'bottom' | 'inline';
}
export interface AdMeshConversationalUnitProps {
    recommendations: AdMeshRecommendation[];
    config: ConversationalAdConfig;
    theme?: AdMeshTheme;
    conversationSummary?: string;
    userQuery?: string;
    sessionId?: string;
    onRecommendationClick?: (adId: string, admeshLink: string) => void;
    onDismiss?: () => void;
    className?: string;
}
export interface AdMeshConversationSummaryProps {
    recommendations: AdMeshRecommendation[];
    conversationSummary: string;
    theme?: AdMeshTheme;
    showTopRecommendations?: number;
    onRecommendationClick?: (adId: string, admeshLink: string) => void;
    onStartNewConversation?: () => void;
    className?: string;
}
export interface AdMeshInlineRecommendationProps {
    recommendation: AdMeshRecommendation;
    theme?: AdMeshTheme;
    compact?: boolean;
    showReason?: boolean;
    onClick?: (adId: string, admeshLink: string) => void;
    className?: string;
}
export interface AdMeshCitationUnitProps {
    recommendations: AdMeshRecommendation[];
    conversationText: string;
    theme?: AdMeshTheme;
    showCitationList?: boolean;
    citationStyle?: 'numbered' | 'bracketed' | 'superscript';
    onRecommendationClick?: (adId: string, admeshLink: string) => void;
    onCitationHover?: (recommendation: AdMeshRecommendation) => void;
    className?: string;
}
export interface AdMeshCitationReferenceProps {
    recommendation: AdMeshRecommendation;
    citationNumber: number;
    citationStyle?: 'numbered' | 'bracketed' | 'superscript';
    theme?: AdMeshTheme;
    showTooltip?: boolean;
    onClick?: (adId: string, admeshLink: string) => void;
    onHover?: (recommendation: AdMeshRecommendation) => void;
    className?: string;
}
export type SidebarPosition = 'left' | 'right';
export type SidebarSize = 'sm' | 'md' | 'lg' | 'xl';
export type SidebarDisplayMode = 'recommendations' | 'history' | 'favorites' | 'mixed';
export interface AdMeshSidebarConfig {
    position: SidebarPosition;
    size: SidebarSize;
    displayMode: SidebarDisplayMode;
    collapsible?: boolean;
    defaultCollapsed?: boolean;
    showHeader?: boolean;
    showSearch?: boolean;
    showFilters?: boolean;
    maxRecommendations?: number;
    autoRefresh?: boolean;
    refreshInterval?: number;
}
export interface AdMeshSidebarProps {
    recommendations: AdMeshRecommendation[];
    config: AdMeshSidebarConfig;
    theme?: AdMeshTheme;
    title?: string;
    isOpen?: boolean;
    onToggle?: () => void;
    onRecommendationClick?: (adId: string, admeshLink: string) => void;
    onSearch?: (query: string) => void;
    onFilter?: (filters: SidebarFilters) => void;
    className?: string;
}
export interface SidebarFilters {
    categories?: string[];
    hasFreeTier?: boolean;
    hasTrial?: boolean;
    minMatchScore?: number;
    maxPrice?: number;
}
export interface AdMeshSidebarHeaderProps {
    title: string;
    theme?: AdMeshTheme;
    collapsible?: boolean;
    isCollapsed?: boolean;
    onToggle?: () => void;
    onSearch?: (query: string) => void;
    showSearch?: boolean;
    className?: string;
}
export interface AdMeshSidebarContentProps {
    recommendations: AdMeshRecommendation[];
    displayMode: SidebarDisplayMode;
    theme?: AdMeshTheme;
    maxRecommendations?: number;
    onRecommendationClick?: (adId: string, admeshLink: string) => void;
    className?: string;
}
export type ChatMessageRole = 'user' | 'assistant' | 'system';
export type ChatPosition = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
export type ChatSize = 'sm' | 'md' | 'lg' | 'xl';
export type ChatDisplayMode = 'widget' | 'fullscreen' | 'embedded';
export interface ChatMessage {
    id: string;
    role: ChatMessageRole;
    content: string;
    timestamp: Date;
    recommendations?: AdMeshRecommendation[];
    isTyping?: boolean;
}
export interface AdMeshChatConfig {
    position: ChatPosition;
    size: ChatSize;
    displayMode: ChatDisplayMode;
    autoOpen?: boolean;
    showWelcomeMessage?: boolean;
    welcomeMessage?: string;
    placeholder?: string;
    maxMessages?: number;
    enableTypingIndicator?: boolean;
    enableSuggestions?: boolean;
    suggestions?: string[];
}
export interface AdMeshFloatingChatProps {
    config: AdMeshChatConfig;
    theme?: AdMeshTheme;
    title?: string;
    subtitle?: string;
    isOpen?: boolean;
    onToggle?: () => void;
    onSendMessage?: (message: string) => Promise<ChatMessage>;
    onRecommendationClick?: (adId: string, admeshLink: string) => void;
    autoRecommendations?: AdMeshRecommendation[];
    autoRecommendationTrigger?: string;
    showInputField?: boolean;
    autoShowRecommendations?: boolean;
    onAutoRecommendationDismiss?: () => void;
    className?: string;
}
export interface AdMeshChatInterfaceProps {
    messages: ChatMessage[];
    config: Partial<AdMeshChatConfig> & {
        showInputField?: boolean;
    };
    theme?: AdMeshTheme;
    isLoading?: boolean;
    onSendMessage?: (message: string) => void;
    onRecommendationClick?: (adId: string, admeshLink: string) => void;
    className?: string;
}
export interface AdMeshChatMessageProps {
    message: ChatMessage;
    theme?: AdMeshTheme;
    onRecommendationClick?: (adId: string, admeshLink: string) => void;
    className?: string;
}
export interface AdMeshChatInputProps {
    placeholder?: string;
    disabled?: boolean;
    suggestions?: string[];
    theme?: AdMeshTheme;
    onSendMessage?: (message: string) => void;
    className?: string;
}
export interface AdMeshCompareTableProps {
    recommendations: AdMeshRecommendation[];
    theme?: AdMeshTheme;
    maxProducts?: number;
    showMatchScores?: boolean;
    showFeatures?: boolean;
    onProductClick?: (adId: string, admeshLink: string) => void;
    className?: string;
}
export interface AdMeshBadgeProps {
    type: BadgeType;
    variant?: BadgeVariant;
    size?: BadgeSize;
    className?: string;
}
export interface AdMeshLayoutProps {
    recommendations: AdMeshRecommendation[];
    intentType?: IntentType;
    theme?: AdMeshTheme;
    maxDisplayed?: number;
    showMatchScores?: boolean;
    showFeatures?: boolean;
    autoLayout?: boolean;
    onProductClick?: (adId: string, admeshLink: string) => void;
    onTrackView?: (data: TrackingData) => void;
    className?: string;
}
export interface AdMeshLinkTrackerProps {
    adId: string;
    admeshLink: string;
    productId?: string;
    children: React.ReactNode;
    onClick?: () => void;
    trackingData?: Record<string, unknown>;
    className?: string;
}
export interface UseAdMeshTrackerReturn {
    trackClick: (data: TrackingData) => Promise<void>;
    trackConversion: (data: TrackingData) => Promise<void>;
    trackView: (data: TrackingData) => Promise<void>;
    isTracking: boolean;
    error: string | null;
}
export interface AgentRecommendationResponse {
    session_id: string;
    intent: {
        categories?: string[];
        goal?: string;
        llm_intent_confidence_score?: number;
        known_mentions?: string[];
        intent_type?: string;
        intent_group?: string;
        keywords?: string[];
    };
    response: {
        summary?: string;
        recommendations: AdMeshRecommendation[];
        followup_suggestions?: {
            label: string;
            query: string;
            product_mentions: string[];
            admesh_links: Record<string, string>;
            session_id: string;
        }[];
    };
    tokens_used: number;
    model_used: string;
    recommendation_id?: string;
    end_of_session?: boolean;
}
export interface AdMeshConfig {
    apiBaseUrl?: string;
    trackingEnabled?: boolean;
    defaultTheme?: AdMeshTheme;
    debug?: boolean;
}
//# sourceMappingURL=index.d.ts.map