/**
 * Split a component's import graph into `relativeImports` (project-local
 * file paths) and `packages` (third-party deps with version specs from
 * package.json).
 *
 * Resolution strategy:
 *   1. `ts.resolveModuleName` with a ts.sys-backed host.
 *   2. Manual fallback through `tsconfig.json` paths aliases for cases
 *      where Bundler resolution doesn't match (e.g. `@/components/*`).
 *
 * Output classification:
 *   - resolved path INSIDE cwd AND NOT under any `node_modules/` →
 *     `relativeImports`.
 *   - everything else → `packages`, with version copied verbatim from
 *     `package.json` deps (dev/peer/optional included) when known.
 */
export type ImportSplit = {
    relativeImports: string[];
    packages: string[];
};
/**
 * Walk imports in each file and classify them.
 *
 * ASSUMES:
 *   - `files` are absolute paths.
 *   - `cwd` (default: `process.cwd()`) is the project root containing
 *     `tsconfig.json` and `package.json`.
 *
 * RETURNS:
 *   - `relativeImports`: sorted absolute paths to project-local files.
 *     `node_modules` paths are excluded — they're classified as packages.
 *   - `packages`: sorted strings ready for `bun add` / `npm install`.
 *     Format is either `name` (no version found) or `name@<spec>`
 *     where `<spec>` is the verbatim entry from package.json.
 *
 * EDGE CASES:
 *   - Symlinks INSIDE cwd → followed to realpath; if realpath is still
 *     inside cwd, kept as relativeImport; if outside, dropped as package.
 *   - Path-aliased imports (`@/x`) when `paths` is in tsconfig.json:
 *     resolved via `resolveByTsconfigPaths` if `ts.resolveModuleName`
 *     fails.
 *   - Bare specs starting with `.` or `/` that don't resolve to a real
 *     file → silently dropped (consumer can't add a missing file).
 */
export declare const extractImports: (files: string[], cwd?: string) => ImportSplit;
//# sourceMappingURL=extractImports.d.ts.map