/** * Content Analyzer for SEO * * Analyzes WordPress content for SEO optimization opportunities including * readability scoring, keyword analysis, content structure evaluation, * and technical SEO factors. * * @since 2.7.0 */ import type { WordPressPost } from "../../../types/wordpress.js"; import type { SEOAnalysisResult, SEOToolParams } from "../../../types/seo.js"; /** * Content analyzer for SEO evaluation */ export declare class ContentAnalyzer { private logger; private config; /** * Analyze post content for SEO factors * * @param post - WordPress post data * @param params - Analysis parameters * @returns Comprehensive SEO analysis */ analyzePost(post: WordPressPost, params: SEOToolParams): Promise; /** * Extract text content from WordPress post * * @param post - WordPress post * @returns Combined content string * @private */ private extractContent; /** * Strip HTML tags and return plain text * * @param html - HTML content * @returns Plain text * @private */ private stripHtml; /** * Calculate comprehensive content metrics * * @param plainText - Plain text content * @param htmlContent - Original HTML content * @param params - Analysis parameters * @returns SEO metrics * @private */ private calculateMetrics; /** * Generate SEO recommendations based on analysis * * @param post - WordPress post * @param metrics - Calculated metrics * @param params - Analysis parameters * @returns Array of recommendations * @private */ private generateRecommendations; /** * Analyze focus keyword usage * * @param plainText - Plain text content * @param keyword - Focus keyword * @returns Keyword analysis * @private */ private analyzeKeywords; /** * Analyze content structure * * @param htmlContent - HTML content * @returns Structure analysis * @private */ private analyzeStructure; private getWords; private getSentences; private countSyllables; private calculateFleschReadingEase; private calculateFleschKincaidGrade; private calculateKeywordDensity; private countHeadings; private countLinks; private countImages; private findSemanticKeywords; private checkHeadingHierarchy; private getCurrentDomain; private calculateOverallScore; private getScoreStatus; } //# sourceMappingURL=ContentAnalyzer.d.ts.map