import { CSSProperties, FC, ReactNode } from 'react'; import { PlatformResponse, AdMeshTheme } from '../types/index'; export interface Suggestion { id: string; text: string; type: 'product' | 'comparison' | 'information' | 'action'; is_sponsored?: boolean; recommendation?: PlatformResponse; metadata?: Record; } export interface AssistantSourceLink { title?: string; url: string; } export interface AssistantRelatedItem { title?: string; url: string; snippet?: string; image_url?: string | null; publisher?: string | null; } export interface AssistantQueryResult { answer: string; source_links?: AssistantSourceLink[]; related_items?: AssistantRelatedItem[]; recommendation?: PlatformResponse | null; followup_suggestions?: Array<{ text: string; type?: Suggestion['type']; }>; } export interface AssistantQueryContext { sponsoredSuggestion?: Suggestion | null; } type SuggestionStyle = 'carousel' | 'stacked'; export type AdSlotBehavior = 'sticky' | 'expand'; export interface AdMeshIntentAssistantProps { defaultOpen?: boolean; open?: boolean; onOpenChange?: (open: boolean) => void; unstable_openOnRunStart?: boolean; layout?: 'floating' | 'inline'; surface?: 'page' | 'ad-slot'; /** Ad-slot only: `expand` (default) opens a full-page overlay when active; `sticky` keeps the assistant inside the slot. */ adSlotBehavior?: AdSlotBehavior; /** Ad-slot compact teaser: show header row (off for short formats like 300×250, 728×90). */ showCompactSlotHeader?: boolean; /** Ad-slot compact teaser: show welcome title (off for very short formats like 728×90). */ showCompactWelcomeMessage?: boolean; /** Ad-slot compact teaser: show input + send row (off for very short formats like 728×90). */ showCompactSlotInput?: boolean; /** Ad-slot compact teaser: show AI disclaimer (off for very short formats like 728×90). */ showCompactSlotDisclaimer?: boolean; position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left'; size?: 'sm' | 'md' | 'lg' | 'xl'; theme?: AdMeshTheme; className?: string; style?: CSSProperties; triggerLabel?: string; triggerIcon?: ReactNode; headerTitle?: string; headerIcon?: ReactNode; headerLogoUrl?: string | null; showHeader?: boolean; showHeaderTitle?: boolean; showSubtitle?: boolean; panelWidth?: number | string; panelHeight?: number | string; fontScale?: number; analyticsPageUrl?: string; autoOpen?: boolean; showWelcomeMessage?: boolean; welcomeMessage?: string; placeholder?: string; adsEnabled?: boolean; suggestions?: Suggestion[]; maxSuggestions?: number; suggestionStyle?: SuggestionStyle; onlyShowWhenSponsored?: boolean; variant?: 'default' | 'legacy'; queryHandler?: (query: string, context: AssistantQueryContext) => Promise; suggestionsLoader?: () => Promise; disclaimerText?: string; poweredByLabel?: string; subtitle?: string; onOpen?: () => void; onClose?: () => void; } export declare const AdMeshIntentAssistant: FC; export default AdMeshIntentAssistant; //# sourceMappingURL=AdMeshIntentAssistant.d.ts.map