export type DepSeverity = 'required' | 'optional';
export interface DepCheck {
    /** Stable key used for install command lookup, e.g. "gjs" */
    id: string;
    /** Human-readable display name, e.g. "GJS" */
    name: string;
    found: boolean;
    /** Version string when found, e.g. "1.86.0" */
    version?: string;
    /** required = exit 1 if missing, optional = warn only */
    severity: DepSeverity;
    /** For optional deps: which @gjsify/* packages need this lib */
    requiredBy?: string[];
}
export type PackageManager = 'apt' | 'dnf' | 'pacman' | 'zypper' | 'apk' | 'unknown';
export declare function detectPackageManager(): PackageManager;
/**
 * Run all dependency checks. Used by `gjsify check` to show full system status.
 *
 * Required deps (gjs, gtk4, libsoup3, libadwaita, gobject-introspection,
 * blueprint-compiler, pkg-config, meson) are always checked.
 *
 * Optional deps are checked conditionally based on which @gjsify/* packages
 * the project (resolved from cwd) actually consumes. If no project context
 * is available, all optional deps are checked.
 */
export declare function runAllChecks(cwd: string): DepCheck[];
/**
 * Minimal checks needed to run any GJS example (Node + GJS binaries only).
 * Used by `gjsify showcase` for examples that have no native deps.
 */
export declare function runMinimalChecks(): DepCheck[];
/** Check gwebgl npm package (project first, CLI fallback). Optional — only needed by @gjsify/webgl users. */
export declare function checkGwebgl(cwd: string): DepCheck;
/**
 * Build a suggested install command for missing dependencies.
 * gwebgl is an npm package, not a system package — handled separately.
 * Returns null when package manager is unknown or no installable deps are missing.
 */
export declare function buildInstallCommand(pm: PackageManager, missing: DepCheck[]): string | null;
