/**
 * Plugin interface for RepoPilot pattern extractors.
 */

import type { TSTree } from "../scanner/parser";
import type { GraphEdge, GraphNode } from "../types";

export interface PatternPlugin {
  readonly name: string;
  matches(tree: TSTree, filePath: string): boolean;
  extract(tree: TSTree, filePath: string): (GraphNode | GraphEdge)[];
}
