/**
 * Read a repository-relative file, returning null when it cannot be read.
 *
 * Reading is best-effort by design: a file that cannot be read establishes
 * nothing, and a readiness producer must never turn "could not look" into
 * either a violation or a clean bill of health.
 * @param root - Repository root
 * @param relativePath - Repo-relative path (forward slashes)
 * @returns File contents, or null
 */
export declare function readFileOrNull(root: string, relativePath: string): Promise<string | null>;
/**
 * Whether a repository-relative directory exists.
 * @param root - Repository root
 * @param relativePath - Repo-relative directory path
 * @returns True when the directory could be listed
 */
export declare function directoryExists(root: string, relativePath: string): Promise<boolean>;
/**
 * Whether a repository-relative path exists, as a file or a directory.
 * @param root - Repository root
 * @param relativePath - Repo-relative path
 * @returns True when something is present at that path
 */
export declare function pathExists(root: string, relativePath: string): Promise<boolean>;
/**
 * Strip leading and trailing slashes from a repo-relative path fragment.
 * Written without a regex quantifier so it cannot backtrack on hostile input.
 * @param value - The path fragment
 * @returns The fragment with empty segments removed
 */
export declare function trimSlashes(value: string): string;
/**
 * Whether a value is a plain JSON object.
 * @param value - Candidate value
 * @returns True when the value is a non-null, non-array object
 */
export declare function isRecord(value: unknown): value is Record<string, unknown>;
/**
 * Wrap non-blocking observations as findings. They deliberately carry no
 * `blocker` key: naming one would stand a blocker up — and flip the whole
 * repository to `NOT_READY` — on an observation that was never decidable.
 * @param notes - Informational lines
 * @returns Findings, one per note
 */
export declare function informationalFindings(notes: readonly string[]): readonly Record<string, unknown>[];
//# sourceMappingURL=doctor-readiness-shared.d.ts.map