/**
 * Workspace analysis — sync, fast checks that run against the install dir
 * during the IntroScreen render so the user gets an explicit warning when
 * they're about to point the wizard at an ambiguous or empty directory.
 *
 * Goal: prevent the "operate first, ask later" anti-pattern. Before any
 * agent-driven file edits happen, the wizard should be able to say:
 *   - "this looks like the wrong directory (no project manifest found)"
 *   - "this is a monorepo — pick a workspace, not the root"
 *
 * All checks are deliberately:
 *   - synchronous (runs in render, must be cheap)
 *   - filesystem-only (no spawn, no network)
 *   - failure-tolerant (every read is wrapped — analysis is best-effort)
 *
 * The result is informational only. The user decides whether to continue.
 */
export interface WorkspaceAnalysis {
    /** Absolute path to the directory analyzed */
    absolutePath: string;
    /**
     * Human-friendly version of `absolutePath`: replaces the user's home
     * directory with `~`. Used in UI copy so the path stays scannable.
     */
    displayPath: string;
    /** True if at least one recognizable project manifest was found */
    hasManifest: boolean;
    /**
     * True if the directory looks like a multi-package monorepo root —
     * pnpm-workspaces, lerna, nx, turbo, rush, or a `package.json` with a
     * top-level `workspaces` field (npm/yarn).
     */
    isMonorepo: boolean;
    /**
     * The workspace globs declared in `package.json#workspaces` or
     * `pnpm-workspace.yaml`. Empty when the monorepo marker doesn't expose
     * a parseable list (e.g. lerna only, or YAML parse failure). Capped at
     * 10 entries so the UI doesn't blow up the layout.
     */
    workspaceGlobs: string[];
}
/** Sub the user's home dir with `~` so paths stay short in UI copy. */
export declare function shortenHomePath(absolutePath: string): string;
/**
 * Run all sync workspace checks against `installDir`.
 *
 * Never throws. On a missing or unreadable directory returns
 * `{ hasManifest: false, isMonorepo: false, workspaceGlobs: [] }` — the
 * caller should treat that the same way as "no manifest found" and
 * surface the warning.
 */
export declare function analyzeWorkspace(installDir: string): WorkspaceAnalysis;
