export interface SEOAnalysisResult {
    score: number;
    checks: SEOCheck[];
}
export interface SEOCheck {
    id: string;
    category: 'keyphrase' | 'readability' | 'seo' | 'social';
    title: string;
    status: 'good' | 'improvement' | 'problem';
    description: string;
}
export interface AnalysisInput {
    title: string;
    slug: string;
    content: string;
    metaTitle?: string;
    metaDescription?: string;
    focusKeyphrase?: string;
    canonical?: string;
    ogTitle?: string;
    ogDescription?: string;
    ogImage?: string;
    isCornerstone?: boolean;
}
export interface ReadabilityResult {
    fleschScore: number;
    fleschLabel: string;
    avgSentenceLength: number;
    avgWordLength: number;
    passiveVoicePercent: number;
    wordCount: number;
    sentenceCount: number;
    paragraphCount: number;
    readingTimeMinutes: number;
}
/** Remove all HTML tags, returning plain text. */
export declare function stripHtmlTags(html: string): string;
/**
 * Estimate the syllable count of an English word.
 *
 * Heuristic: count vowel groups, subtract 1 for a trailing silent 'e',
 * and clamp to a minimum of 1.
 */
export declare function countSyllables(word: string): number;
/** Detect passive voice in a single sentence. */
export declare function detectPassiveVoice(sentence: string): boolean;
/** Split plain text into sentences. */
export declare function splitSentences(text: string): string[];
/** Split plain text into paragraphs (double newlines or `<p>` boundaries). */
export declare function splitParagraphs(text: string): string[];
/**
 * Extract headings of a given level from content that may be HTML **or**
 * Markdown. The content analysis runs against whatever editors store in the
 * body field; rich-text collections store HTML while markdown collections store
 * raw `#`/`##` ATX (and `===`/`---` Setext) headings. Matching only HTML tags
 * made every markdown post fail the "no H1 / no subheadings" checks. This
 * recognises both syntaxes so the score reflects the real document structure.
 */
export declare function extractHeadings(content: string, level: 1 | 2 | 3 | 4): string[];
/**
 * Run a comprehensive SEO analysis on the given content and metadata.
 *
 * Returns a 0-100 score together with detailed per-check results across
 * keyphrase, SEO, readability, and social categories.
 */
export declare function analyzeContent(input: AnalysisInput): SEOAnalysisResult;
/**
 * Calculate readability metrics for a block of plain text.
 *
 * Includes the Flesch reading ease score, average sentence/word lengths,
 * passive voice percentage, word/sentence/paragraph counts, and estimated
 * reading time.
 */
export declare function calculateReadability(text: string): ReadabilityResult;
//# sourceMappingURL=analysis.d.ts.map