/** One Ruby gem declaration flattened from a Gemfile. */
export interface RubyDependencySpec {
    readonly manifestPath: "Gemfile";
    readonly name: string;
    readonly spec: string | null;
}
/** What reading a Ruby/Bundler manifest established. */
export type RubyManifestOutcome = {
    readonly kind: "absent";
} | {
    readonly kind: "unassessable";
    readonly reason: string;
} | {
    readonly kind: "ok";
    readonly manifestPath: "Gemfile";
    readonly specs: readonly RubyDependencySpec[];
};
/**
 * Read the Ruby/Bundler dependency manifest when no JavaScript manifest exists.
 * @param root - Repository root
 * @returns Parsed Gemfile specs, or absent when this is not a Bundler project
 */
export declare function readRubyManifest(root: string): Promise<RubyManifestOutcome>;
/**
 * Find the committed Ruby/Bundler lockfile.
 * @param root - Repository root
 * @returns The lockfile path, or null when none is committed
 */
export declare function findRubyLockfile(root: string): Promise<string | null>;
/**
 * Find where the repository audits its Ruby/Bundler dependency tree.
 * @param root - Repository root
 * @returns The repo-relative path of the first Ruby audit gate found, or null
 */
export declare function findRubyAuditGate(root: string): Promise<string | null>;
//# sourceMappingURL=doctor-readiness-supply-chain-ruby.d.ts.map