/** What resolving the repository's workspace members established. */
export interface WorkspaceMembers {
    /** Whether the repository declares workspaces at all. */
    readonly declared: boolean;
    /** Names of the local packages the workspaces resolve to. */
    readonly names: ReadonlySet<string>;
    /** Parsed package manifests resolved from workspace children. */
    readonly members: readonly WorkspaceMember[];
}
/** One workspace child manifest that could be parsed offline. */
export interface WorkspaceMember {
    /** Repo-relative path to the child package manifest. */
    readonly manifestPath: string;
    /** Child package name when the manifest declares one. */
    readonly name: string | null;
    /** Parsed child package manifest. */
    readonly manifest: Record<string, unknown>;
}
/**
 * Resolve the local package names a repository's workspace globs expand to.
 *
 * This exists because `"@acme/utils": "*"` against a workspace member is the
 * workspace-link idiom, not a floating install: it resolves to the package in
 * this repository. Faulting it would fail every correctly configured monorepo.
 * Glob support is deliberately shallow (a single trailing `*`), and an
 * unresolvable glob simply contributes no names — absence never manufactures a
 * violation.
 * @param root - Repository root
 * @param manifest - Parsed root `package.json`
 * @returns Whether workspaces are declared, and the member names resolved
 */
export declare function resolveWorkspaceMembers(root: string, manifest: Record<string, unknown>): Promise<WorkspaceMembers>;
//# sourceMappingURL=doctor-readiness-workspaces.d.ts.map