/**
 * ts-imports.ts — tree-sitter AST extractor for TypeScript/TSX imports + re-exports.
 *
 * Mirrors the structure of `python-imports.ts`. The graph builder calls
 * `extractTypeScriptImports(tree)` to walk `import_statement` and
 * `export_statement` (with `source` field) nodes; it returns flat edges with
 * an `is_type_only` flag derived from statement-level OR per-specifier `type`
 * modifiers.
 *
 * Detection rules:
 *   - statement-level `import type { X } from "y"` → all specifiers type-only
 *   - per-specifier `import { type X, Y } from "y"` → type_only:false (any
 *     runtime specifier present makes the entire edge runtime; the import is
 *     loaded at runtime regardless of which subset is used as types only)
 *   - `import { } from "y"` (empty named clause) → runtime (module still evaluated)
 *   - `import * as ns from "y"` / default / side-effect → runtime
 *   - `export { X } from "y"` → runtime; `export type { X } from "y"` → type_only:true
 *   - per-specifier `export { type X, Y } from "y"` → runtime if any runtime export (same rule as imports)
 *   - `export * from "y"` → runtime; `export type * from "y"` → type_only:true
 *   - `import x = require("y")` → runtime edge to `y` (handled via `import_require_clause`)
 *
 * Limitation: `import { type X } from "m"` is modeled type-only when all named bindings are
 * `type`-only; with `verbatimModuleSyntax`, TS may still emit a runtime module dependency —
 * we do not read compilerOptions here, so graphs may under-report runtime edges in that mode.
 */
import type Parser from "web-tree-sitter";
export interface TsImportEdge {
    /** raw specifier text from the import source (relative or bare/aliased) */
    path: string;
    /** true when statement-level `import type` / `export type`, all per-specifier `type` bindings in a named clause, or `export type *`; see file header for edge cases */
    is_type_only: boolean;
    /** imported/re-exported names (for future use; empty for side-effect imports) */
    specifiers: string[];
}
/** Walk the tree and return all import + re-export edges. */
export declare function extractTypeScriptImports(tree: Parser.Tree): TsImportEdge[];
//# sourceMappingURL=ts-imports.d.ts.map