/**
 * Read the settings file for the gate report.
 *
 * Deliberately a separate module so that a refusal is impossible to lose. The
 * registry REFUSES a runner that cannot run a task, and refuses a gates block
 * with an unknown moment key; both throw. Swallowed, either would produce a
 * report indistinguishable from a project that simply declared nothing — which
 * is precisely the reading this report exists to make impossible.
 * @module cli/gate-report-config
 */
import type { GateRegistryModule } from "./gate-report-registry.js";
import type { Finding } from "./gate-report-types.js";
/** The settings file, parsed, with every failure kept explicit. */
export interface ParsedConfig {
    readonly gates: Record<string, unknown>;
    readonly runner: string;
    readonly runnerFinding: Finding<string>;
    readonly runnerSource: "declared" | "default" | "unknown";
    readonly problems: string[];
}
/**
 * Read `.lisa.config.json`, degrading a refusal into a stated problem.
 * @param registry - The shipped registry
 * @param projectRoot - Project root
 * @returns The parsed config
 */
export declare function readConfig(registry: GateRegistryModule, projectRoot: string): ParsedConfig;
//# sourceMappingURL=gate-report-config.d.ts.map