/**
 * Next.js link integrity checker (T5).
 *
 * Walks `app/**\/*.{tsx,jsx}` files for `<Link href>` JSX components and
 * `router.push/.replace` calls, then cross-references each href against the
 * route map (via `nextjsRouteMap`) to flag broken links. Template-literal
 * hrefs are bucketed as "unresolved" rather than guessed.
 */
import { type LinkRef } from "../utils/nextjs.js";
export type { LinkRef };
export interface BrokenLink {
    href: string;
    file: string;
    line: number;
    kind: LinkRef["kind"];
}
export interface UnresolvedLink {
    reason: "template_literal" | "non_literal";
    file: string;
    line: number;
    raw: string;
}
export interface LinkIntegrityResult {
    total_refs: number;
    resolved_count: number;
    broken_count: number;
    unresolved_count: number;
    broken: BrokenLink[];
    unresolved: UnresolvedLink[];
    workspaces_scanned: string[];
    parse_failures: string[];
    scan_errors: string[];
    limitations: string[];
}
export interface NextjsLinkIntegrityOptions {
    workspace?: string | undefined;
    max_files?: number | undefined;
}
export declare function matchRoutePattern(href: string, routes: string[]): boolean;
export declare function nextjsLinkIntegrity(repo: string, options?: NextjsLinkIntegrityOptions): Promise<LinkIntegrityResult>;
//# sourceMappingURL=nextjs-link-tools.d.ts.map