/**
 * Canonical image alt-text analysis, shared by every surface that reports on
 * alt coverage (SEO analysis, the audit engine, the content-health scanner, the
 * cron scan). Previously each had its own regex and they disagreed on the most
 * important edge case — an intentionally *decorative* image — which produced
 * conflicting "missing alt" counts.
 *
 * Rules (chosen to match the long-standing scanner/cron contract: an explicit
 * empty `alt=""` is an intentional, valid decorative choice — only a *missing*
 * `alt` attribute is an error):
 *   - DECORATIVE: an empty `alt=""` (the author opted the image out of the
 *     accessibility tree), or any image explicitly marked decorative for
 *     assistive tech (`role="presentation"`, `role="none"`, `aria-hidden="true"`).
 *     Decorative images are correct and never flagged as missing.
 *   - MISSING: a non-decorative image with no `alt` attribute at all.
 *   - HAS ALT: a non-empty `alt`.
 */
/**
 * True when an `<img>` tag is decorative: either an explicit empty `alt=""`, or
 * marked decorative for assistive tech (`role="presentation"`/`"none"` or
 * `aria-hidden="true"`). A descriptive (non-empty) alt is never decorative.
 */
export declare function isDecorativeImgTag(tag: string): boolean;
export interface ImageAltAnalysis {
    /** All `<img>` tags found. */
    total: number;
    /** Non-decorative images that have non-empty alt text. */
    withAlt: number;
    /** Images correctly marked decorative (excluded from coverage math). */
    decorative: number;
    /** Non-decorative images with no/empty alt. */
    missing: number;
    /** The non-empty alt strings, trimmed. */
    altTexts: string[];
}
export declare function analyzeImageAlts(html: string | null | undefined): ImageAltAnalysis;
/** Count images missing alt text (decorative images excluded). */
export declare function countMissingAltImages(html: string | null | undefined): number;
//# sourceMappingURL=alt-text.d.ts.map