/**
 * Next.js data flow analyzer (T6).
 *
 * Walks `app/**\/page.{tsx,jsx}` files for `fetch()`, `cookies()`, `headers()`
 * calls (via the shared `extractFetchCalls` helper) and classifies fetch
 * patterns as waterfall vs parallel, plus cache strategy. Returns per-page
 * data flow entries with aggregate counts.
 */
import { type FetchCall } from "../utils/nextjs.js";
export type CacheStrategy = "cached" | "no-cache" | "default" | string;
export interface FetchAnalysis {
    fetches: FetchCall[];
    waterfall_pairs: Array<{
        first: number;
        second: number;
    }>;
}
export interface DataFlowEntry {
    url_path: string;
    file: string;
    fetches: FetchCall[];
    waterfall_count: number;
    cache_distribution: Record<string, number>;
}
export interface NextjsDataFlowResult {
    entries: DataFlowEntry[];
    total_pages: number;
    total_waterfalls: number;
    cache_summary: Record<string, number>;
    workspaces_scanned: string[];
    parse_failures: string[];
    scan_errors: string[];
    limitations: string[];
}
export interface NextjsDataFlowOptions {
    workspace?: string | undefined;
    url_path?: string | undefined;
}
export declare function classifyFetches(fetches: FetchCall[]): FetchAnalysis;
export declare function classifyCacheStrategy(fetch: FetchCall): CacheStrategy;
export declare function nextjsDataFlow(repo: string, options?: NextjsDataFlowOptions): Promise<NextjsDataFlowResult>;
//# sourceMappingURL=nextjs-data-flow-tools.d.ts.map