import type { Datum } from "./datumTypes";
export type A11yPrinciple = "perceivable" | "operable" | "understandable" | "robust" | "compromising" | "assistive" | "flexible";
/**
 * - `pass`  — satisfied (by config or by Semiotic's built-ins)
 * - `fail`  — a problem we can prove from the config
 * - `warn`  — a likely problem or a default worth revisiting
 * - `manual`— can't be settled statically; run the named Chartability test
 * - `not-applicable` — heuristic doesn't apply to this chart
 */
export type A11yStatus = "pass" | "fail" | "warn" | "manual" | "not-applicable";
export interface A11yFinding {
    /** Stable id, `principle.heuristic-slug` (e.g. "perceivable.low-contrast"). */
    id: string;
    principle: A11yPrinciple;
    /** The Chartability heuristic name, verbatim. */
    heuristic: string;
    /** Chartability flags 14 of 50 heuristics as critical. */
    critical: boolean;
    status: A11yStatus;
    message: string;
    /** How to fix or, for `manual`, the test to run. */
    fix?: string;
}
export interface AccessibilityAuditResult {
    component: string;
    /** No critical heuristic is in a `fail` state. (warn/manual don't break this.) */
    ok: boolean;
    summary: {
        criticalsPassed: number;
        /** Critical heuristics actually evaluated (excludes not-applicable). */
        criticalsEvaluated: number;
        fails: number;
        warnings: number;
        manual: number;
        passes: number;
    };
    findings: A11yFinding[];
    /** Always points back to the source framework. */
    reference: string;
}
export interface AuditAccessibilityOptions {
    /**
     * Whether the chart is wrapped in a ChartContainer (or otherwise exposes a
     * data-download / copy-config affordance). Lets the audit credit the
     * "downloadable table" and "shareable state" heuristics. ChartContainer is
     * the opt-in layer for full-accessibility chrome (title, caption,
     * description), so several heuristics soften their remediation toward it.
     * Default false.
     */
    inChartContainer?: boolean;
    /**
     * Whether ChartContainer's `describe` option (auto-generated L1–L3 description
     * via describeChart) is enabled. Lets the "features described" heuristic pass.
     * Default false.
     */
    describe?: boolean;
    /**
     * Whether ChartContainer's `navigable` option (a structured, screen-reader-
     * navigable tree via buildNavigationTree/AccessibleNavTree) is enabled. Lets
     * the "navigable structure" heuristic pass — including for hierarchy charts.
     * Default false.
     */
    navigable?: boolean;
}
/**
 * Audit a Semiotic chart configuration against the Chartability heuristics.
 * Pure, SSR-safe, no DOM. See module docstring for what static analysis can
 * and cannot determine.
 */
export declare function auditAccessibility(component: string, props: Datum, options?: AuditAccessibilityOptions): AccessibilityAuditResult;
/**
 * Distil an audit result into terse caveat strings — the author-actionable
 * `fail` and `warn` findings, one line each. Lets the recommender (and an AI
 * agent) read *receivability* caveats ("8 slices is too many," "color-only
 * encoding") from the same channel as the perceptual caveats a capability
 * descriptor already declares, instead of two disconnected surfaces.
 *
 * Pure. Pair with {@link auditAccessibility}:
 * ```ts
 * const caveats = accessibilityCaveats(auditAccessibility("PieChart", props))
 * ```
 *
 * @param onlyCritical When true, restrict to critical heuristics (the 14 that
 *   Chartability flags). Default false — include all fail/warn findings.
 */
export declare function accessibilityCaveats(result: AccessibilityAuditResult, { onlyCritical }?: {
    onlyCritical?: boolean;
}): string[];
/** Render an audit result as a human-readable report (used by --audit-a11y + MCP). */
export declare function formatAccessibilityAudit(result: AccessibilityAuditResult): string;
