import { type HealthResult } from "./contract.js";
import { type HooksPathReader } from "./hook-inspection.js";
import { type InstalledPluginReader } from "./plugin-inspection.js";
import { readGithubRulesets, type RulesetReader } from "./ruleset-inspection.js";
/**
 * Injectable deterministic-health collaborators. Reader overrides must honor
 * their AbortSignal and release owned handles; the runner bounds its own return
 * but cannot reclaim arbitrary handles created by caller-supplied JavaScript.
 */
export interface DeterministicHealthOptions {
    /** Lisa package root containing stack templates. */
    readonly lisaRoot?: string;
    /** Total wall-clock deadline, including root/config/type setup. */
    readonly deadlineMs?: number;
    /** Injectable timestamp clock for contract tests. */
    readonly now?: () => Date;
    /** Injectable bounded detailed ruleset reader. */
    readonly readRulesets?: RulesetReader;
    /** Injectable bounded actual installed-plugin reader. */
    readonly readInstalledPlugins?: InstalledPluginReader;
    /** Injectable bounded repository hooks-path reader. */
    readonly readHooksPath?: HooksPathReader;
}
/**
 * Collect deterministic Health v1 without persistence, repair, installation,
 * update checks, process-exit mutation, or model calls.
 * @param projectPath - Host project root
 * @param options - Injectable roots, deadline, clock, and bounded readers
 * @returns Validated immutable deterministic HealthResult
 */
export declare function runDeterministicHealth(projectPath: string, options?: DeterministicHealthOptions): Promise<HealthResult>;
export { readGithubRulesets };
export type { RulesetReader };
//# sourceMappingURL=deterministic.d.ts.map