interface EarnLayerConfig { proxyBaseUrl?: string; } interface AdPreferences { ad_types?: ('hyperlink' | 'thinking' | 'banner' | 'popup' | 'video')[]; frequency?: 'low' | 'normal' | 'high'; revenue_vs_relevance?: number; display_ad_similarity_threshold?: number; min_seconds_between_display_ads?: number; categories?: string[]; } interface ConversationOptions { visitorId?: string; adTypes?: ('hyperlink' | 'display')[]; frequency?: 'low' | 'normal' | 'high'; adPreferences?: AdPreferences; demoMode?: boolean; } interface Conversation { conversation_id: string; creator_id: string; ad_settings: any; status: string; created_at: string; } interface DisplayAd { id: string; impressionId: string; title: string; description?: string; url: string; imageUrl?: string; adType: 'banner' | 'popup' | 'video' | 'thinking'; source: 'queue' | 'fallback'; needsDescription?: boolean; } interface AdClickEvent { adId: string; impressionId: string; url: string; timestamp: number; } interface MCPAdsResponse { result: { hyperlink_ads: Array<{ id: string; title: string; description: string; url: string; }>; display_ads: DisplayAd[]; }; } interface ChatResponse { response: string; usedMcp?: boolean; } interface ErrorResponse { error: string; } interface ImpressionConfirmationResult { confirmed_count: number; impression_ids: string[]; } declare class EarnLayerClient { private proxyBaseUrl; constructor(config?: EarnLayerConfig); initializeConversation(options?: ConversationOptions): Promise; getDisplayAd(conversationId: string, adType?: string, thinkingAdTimeout?: number, refresh?: boolean): Promise; trackImpression(impressionId: string): Promise; trackClick(impressionId: string): Promise; confirmHyperlinkImpressions(conversationId: string, messageText: string): Promise<{ confirmed_count: number; impression_ids: string[]; }>; private generateVisitorId; } interface FetchAdParams { conversationId?: string; adType?: 'banner' | 'popup' | 'video' | 'thinking'; placement?: string; thinkingAdTimeout?: number; } declare class DisplayAdFetcher { private client; constructor(client: EarnLayerClient); fetchAd(params: FetchAdParams): Promise; } export { DisplayAdFetcher, EarnLayerClient }; export type { AdClickEvent, AdPreferences, ChatResponse, Conversation, ConversationOptions, DisplayAd, EarnLayerConfig, ErrorResponse, FetchAdParams, ImpressionConfirmationResult, MCPAdsResponse };