/**
 * astro_audit — meta-tool that runs all Astro tools in one call.
 *
 * Runs in parallel:
 *   - astro_config_analyze
 *   - astro_analyze_islands
 *   - astro_hydration_audit
 *   - astro_route_map
 *   - astro_actions_audit (if available)
 *   - astro_content_collections (if available)
 *   - astro_migration_check (if available)
 *   - 13 Astro patterns via search_patterns
 *
 * Returns a unified health report with letter score and per-section gates.
 * Mirrors the react_quickstart pattern.
 */
import type { CodeIndex } from "../types.js";
export type GateStatus = "pass" | "warn" | "fail";
export type OverallScore = "A" | "B" | "C" | "D";
export interface AstroAuditResult {
    score: OverallScore;
    gates: {
        config: "pass" | "fail";
        hydration: "pass" | "warn" | "fail";
        routes: "pass" | "warn" | "fail";
        actions: "pass" | "warn" | "fail";
        content: "pass" | "warn" | "fail";
        migration: "pass" | "warn" | "fail";
        patterns: "pass" | "warn" | "fail";
        middleware: "pass" | "warn" | "fail" | "skipped";
        sessions: "pass" | "warn" | "fail" | "skipped";
        db: "pass" | "warn" | "fail" | "skipped";
        env: "pass" | "warn" | "fail" | "skipped";
        image: "pass" | "warn" | "fail" | "skipped";
        svg: "pass" | "warn" | "fail" | "skipped";
    };
    sections: {
        config?: {
            output_mode: string | null;
            integrations: string[];
            issue_count: number;
        };
        islands?: {
            total_islands: number;
            by_directive: Record<string, number>;
            total_js_budget_kb: number;
        };
        hydration?: {
            score: string;
            total_issues: number;
            errors: number;
            warnings: number;
        };
        routes?: {
            total_routes: number;
            warnings: string[];
        };
        actions?: {
            total_actions: number;
            score: string;
            total_issues: number;
        };
        content?: {
            total_collections: number;
            total_entries: number;
            collections_with_issues: number;
        };
        migration?: {
            current_version: string | null;
            target_version: string;
            total_breaking_changes: number;
            estimated_hours: string;
        };
        patterns?: {
            total_matches: number;
            patterns_fired: string[];
        };
        middleware?: {
            handlers: string[];
            routes_protected_count: number;
            issues_total: number;
        };
        sessions?: {
            adapter: string | null;
            sessions_enabled: boolean;
            usage_count: number;
            issues_total: number;
        };
        db?: {
            tables_total: number;
            n_plus_one_count: number;
            missing_indexes_count: number;
            issues_total: number;
        };
        env?: {
            declared: number;
            used: number;
            missing_count: number;
            unused_count: number;
            issues_total: number;
        };
        image?: {
            raw_img_count: number;
            image_component_count: number;
            issues_total: number;
        };
        svg?: {
            imports_total: number;
            unused_count: number;
            issues_total: number;
        };
    };
    recommendations: string[];
}
export declare const ASTRO_PATTERNS: string[];
export declare function deriveOverallScore(gates: AstroAuditResult["gates"]): OverallScore;
interface PatternCount {
    pattern: string;
    count: number;
}
export declare function astroAuditFromIndex(index: CodeIndex, skip: Set<string>, patternCounts?: PatternCount[]): Promise<AstroAuditResult>;
export declare function astroAudit(args: {
    repo?: string;
    skip?: string[];
}): Promise<AstroAuditResult>;
export {};
//# sourceMappingURL=astro-audit.d.ts.map