import { CompanyAnalysisResult, IndustryAnalysisResult, RestructuredAdsResult } from './gemini_analyzer'; export interface Competitor { name: string; url: string; } export interface ScrapingOptions { maxResults?: number; useExistingRun?: boolean; } export interface CompetitiveAnalysisConfig { clientDetails: string; competitors: Competitor[]; scrapingOptions?: ScrapingOptions; apiKeys?: { apifyToken?: string; geminiApiKey?: string; }; } export interface CompetitiveAnalysisResult { clientDetails: string; competitors: Competitor[]; totalAdsScraped: number; restructuredAds: RestructuredAdsResult; companyAnalyses: CompanyAnalysisResult[]; industryAnalysis: IndustryAnalysisResult; analysisMetadata: { timestamp: string; scrapingOptions?: ScrapingOptions; totalCompanies: number; }; } export interface ParsedAd { adId: string; assetType: string; format: string; visualHooks: string[]; audiencesAddressed: string[]; ageGroup?: string; graphicIdentity: string[]; copywritingHooks: string[]; copywritingAngles: string[]; usps: string[]; cta: string; adSummary: string; engagementMetrics?: string; duration?: string; adTotalAirTime?: string; adLibraryUrl?: string; targetingAssumptions: string[]; publisherPlatform?: string[]; } export interface ParsedCompany { companyName: string; ads: ParsedAd[]; } export interface ParsedRestructuredAds { companies: ParsedCompany[]; } export interface ParsedIndustryAnalysis { companyName: string; creativeSummary: string; topCreatives: Array<{ name: string; primaryHook: string; cta: string; visualComposition: string; copywritingTone: string; }>; whatWorks: Array<{ title: string; description: string; example?: string; }>; missedOpportunities: Array<{ title: string; description: string; }>; actionableTakeaways: Array<{ title: string; insight: string; suggestedFormat: string; hypothesis: string; }>; } export interface ParsedCompanyAnalysis { companyName: string; creativeSummary: string; topCreatives: { description: string; primaryHook: string; cta: string; ctaFraming: string; visualComposition: string; copywritingTone: string; }; whatWorks: Array<{ title: string; description: string; }>; missedOpportunities: Array<{ title: string; description: string; }>; actionableTakeaways: Array<{ title: string; insight: string; suggestedFormat: string; hypothesis: string; }>; } /** * Performs a complete competitive analysis using the Gemini pipeline * @param analysisConfig - Configuration object containing all required parameters * @returns Promise - Complete analysis results * * @example * ```typescript * const result = await performCompetitiveAnalysis({ * clientDetails: 'Your company description...', * competitors: [{ name: 'Competitor', url: 'facebook_ads_url' }], * apiKeys: { * apifyToken: 'your-apify-token', // Optional: falls back to APIFY_TOKEN env var * geminiApiKey: 'your-gemini-api-key' // Optional: falls back to GEMINI_API_KEY env var * } * }); * ``` */ export declare function performCompetitiveAnalysis(analysisConfig: CompetitiveAnalysisConfig): Promise; /** * Parses the restructured ads text into structured JSON format * @param restructuredAdsText - The raw text output from restructureAds * @returns ParsedRestructuredAds - Structured JSON format */ export declare function parseRestructuredAds(restructuredAdsText: string): ParsedRestructuredAds; /** * Parses the industry analysis text into structured JSON format * @param industryAnalysisText - The raw text output from industryWriteup * @returns ParsedIndustryAnalysis - Structured JSON format */ export declare function parseIndustryAnalysis(industryAnalysisText: string): ParsedIndustryAnalysis; /** * Parses a single company analysis text into structured JSON format * @param companyAnalysisText - The raw text output from getTopIdeasPerCompany * @returns ParsedCompanyAnalysis - Structured JSON format */ export declare function parseCompanyAnalysis(companyAnalysisText: string): ParsedCompanyAnalysis; /** * Parses the complete competitive analysis result into structured JSON format * @param result - The raw result from performCompetitiveAnalysis * @returns Object with parsed restructuredAds, industryAnalysis, and companyAnalyses */ export declare function parseCompetitiveAnalysisResult(result: CompetitiveAnalysisResult): { restructuredAds: RestructuredAdsResult; industryAnalysis: IndustryAnalysisResult; companyAnalyses: CompanyAnalysisResult[]; metadata: typeof result.analysisMetadata; }; //# sourceMappingURL=main.d.ts.map