/**
 * check_flow_health (T-FLOW-UNSKIPPABLE FU.3 / D3) — SessionStart health assurance.
 *
 * The flow-enforcement gates only fire when (a) the opensquid hooks are actually
 * wired in `~/.claude/settings.json` and (b) a gate pack (one with an FSM, e.g.
 * `coding-flow`) is active for this umbrella. A session that started before the
 * hooks were installed, or in an umbrella with no gate pack, runs FULLY UN-GATED
 * with no signal — the F3 failure mode (a session predating the install calls NONE
 * of the hooks). This primitive, dispatched on `session_start`, READS that state
 * and returns a LOUD `inject_context` directive when enforcement is not active, so
 * the agent + user see it instead of silently drifting.
 *
 * REPORT-ONLY by necessity (sanctioned, unlike the old no_agent_loop posture): a
 * SessionStart hook cannot retro-fit a session that never loaded it, and Claude
 * Code reads hook config only at session start — so the only honest remedy is to
 * INFORM and let the user restart after `opensquid setup`. Fail-open: any read
 * error degrades to "no injection" (a health check must never block a session).
 *
 * Imports from: node:fs/promises, node:os, node:path, zod, ../runtime/result.js,
 *   ../runtime/bootstrap.js.
 * Imported by: src/runtime/bootstrap.ts (registry wiring).
 */
import { z } from 'zod';
import type { FunctionDef } from './registry.js';
declare const NoArgs: z.ZodObject<{}, "strict", z.ZodTypeAny, {}, {}>;
interface CheckFlowHealthResult {
    kind: 'inject_context';
    content: string;
}
/**
 * The flow-enforcement problem set for a session: empty ⇒ gates are active.
 * Extracted (T-SESSION-STATUS-MANIFEST) so the consolidated session-start
 * manifest can report the same flow status without duplicating the detection.
 * Never throws — each probe degrades to a descriptive problem string.
 */
export declare function flowEnforcementProblems(sessionId: string): Promise<string[]>;
/**
 * Returns a LOUD inject_context directive when flow enforcement is NOT active for
 * this session, else null (silent when healthy). Never throws.
 */
export declare const CheckFlowHealth: FunctionDef<z.input<typeof NoArgs>, CheckFlowHealthResult | null>;
export {};
//# sourceMappingURL=check_flow_health.d.ts.map