import { type Island } from "../parser/astro-template.js";
import type { CodeIndex } from "../types.js";
export interface BundleEstimate {
    estimated_bundle_kb: number;
    framework_cost_kb: number;
    marginal_cost_kb: number;
}
export interface ServerIsland {
    file: string;
    line: number;
    component: string;
    has_fallback: boolean;
}
export interface IslandWithBundle extends Island {
    bundle?: BundleEstimate | undefined;
    file: string;
}
export interface BudgetSummary {
    total_js_budget_kb: number;
    framework_overhead: Record<string, number>;
    unique_component_cost_kb: number;
}
export interface AnalyzeIslandsResult {
    islands: IslandWithBundle[];
    summary: {
        total_islands: number;
        by_directive: Record<string, number>;
        by_framework: Record<string, number>;
        warnings: string[];
        budget?: BudgetSummary | undefined;
    };
    server_islands: ServerIsland[];
}
export declare function astroAnalyzeIslands(args: {
    repo?: string;
    path_prefix?: string;
    include_recommendations?: boolean;
}): Promise<AnalyzeIslandsResult>;
export declare function analyzeIslandsFromIndex(index: CodeIndex, pathPrefix?: string): AnalyzeIslandsResult;
export interface AuditIssue {
    code: string;
    severity: "error" | "warning" | "info";
    message: string;
    file: string;
    line: number;
    component?: string | undefined;
    fix: string;
    fix_snippet?: string | undefined;
}
export interface HydrationAuditResult {
    issues: AuditIssue[];
    anti_patterns_checked: string[];
    score: "A" | "B" | "C" | "D";
    exit_code: 0 | 1 | 2;
}
export declare function astroHydrationAudit(args: {
    repo?: string;
    severity?: "all" | "warnings" | "errors";
    path_prefix?: string;
    fail_on?: "error" | "warning" | "info";
}): Promise<HydrationAuditResult>;
export declare function hydrationAuditFromIndex(index: CodeIndex, severity?: "all" | "warnings" | "errors", pathPrefix?: string, failOn?: "error" | "warning" | "info"): HydrationAuditResult;
//# sourceMappingURL=astro-islands.d.ts.map