export interface GateWiringResult { wired: boolean; signals: string[]; } /** Best-effort: can the ztrack plugin's Stop/SubagentStop hooks actually fire for a loop armed in * `projectRoot` right now? Never throws — every read is defensive (see file header). A `false` * result is NOT proof the gate is absent (another harness may wire it invisibly to this check), * so callers must WARN, never refuse, on a negative result (ZTB-29 dev/03). * * Reads real `~/.claude` paths via `os.homedir()` by default. `opts.home` overrides that root — * used by tests to point at a fixture home directory; Bun's `os.homedir()` reads the OS user * record directly and does not observe a runtime-mutated `process.env.HOME` (unlike Node), so an * explicit override is the only deterministic way to unit-test this without spawning a * subprocess. Production call sites never pass it. */ export declare function detectGateWiring(projectRoot: string, opts?: { home?: string; }): GateWiringResult;