/**
 * Optional Features — Installation Status Probe
 *
 * Resolves whether each feature in the catalog is currently available
 * by attempting to read its packages from the AIWG install's
 * `node_modules`. Pure best-effort — never throws on missing packages,
 * just reports them as not installed.
 *
 * @implements #1219
 */
import { type FeatureDefinition } from './catalog.js';
export interface PackageStatus {
    /** Package name as published on npm */
    name: string;
    /** True if `node_modules/<name>/package.json` resolves */
    installed: boolean;
    /** Version from the package.json if installed */
    version: string | null;
    /** Absolute path to the resolved package.json (for diagnostics) */
    path: string | null;
}
export interface FeatureStatus {
    /** Feature definition (forwarded for convenience) */
    feature: FeatureDefinition;
    /** Per-package install status */
    packages: PackageStatus[];
    /** True iff all packages in the feature resolve */
    available: boolean;
    /** Names of any missing packages (subset of feature.packages) */
    missing: string[];
}
/** Status of a single named feature. Returns null if the name is unknown. */
export declare function getFeatureStatus(name: string): Promise<FeatureStatus | null>;
/** Status of every feature in the catalog. */
export declare function getAllFeatureStatuses(): Promise<FeatureStatus[]>;
/**
 * Format a single feature status as a one-line "doctor row":
 *   ✓ embeddings   installed (@xenova/transformers 2.17.2, hnswlib-node 3.0.0)
 *   ○ pty          not installed — `aiwg features install pty` to enable
 */
export declare function formatStatusLine(status: FeatureStatus, indent?: string): string;
//# sourceMappingURL=status.d.ts.map