/**
 * Shared harness for the `agents daemon` CLI subprocess suites (RUSH-2354).
 *
 * Every test spawns the real CLI against an isolated mkdtemp HOME with no
 * daemon running — no mocks. Modeled on routines.test.ts.
 *
 * EXTRACTED so the suite can live in several files. `daemon.test.ts` was 35
 * tests in ONE file at 159s — the slowest file in the repo and therefore the
 * SUITE'S FLOOR, because vitest parallelises across files and runs the tests
 * inside one file sequentially in a single worker. Splitting the tests across
 * files lets them run concurrently; sharing the harness is what makes that
 * possible without duplicating the spawn plumbing.
 */
import { spawnSync, type ChildProcess } from 'child_process';
export declare const REPO_ROOT: string;
export declare const TSX_IMPORT: string;
export declare const CLI_ENTRYPOINT: string;
/**
 * win32: subprocess CLI + process-group signals / path spawn assumptions
 * (RUSH-2215). Exported as a PREDICATE, not as a pre-bound `describe.skip` —
 * vitest's suite type is not nameable across a module boundary (TS4023), so
 * each suite builds its own `describe` from this.
 */
export declare const DAEMON_TESTS_SUPPORTED: boolean;
/** Provision an isolated HOME with just enough scaffolding for the CLI to boot. */
export declare function makeHome(): string;
/** Run `agents daemon <args>` against an isolated HOME — no daemon process ever started. */
export declare function run(home: string, args: string[]): ReturnType<typeof spawnSync>;
/**
 * Spawn a real, long-lived process whose command line ends in `__daemon-run`
 * (so `isLiveDaemon`'s process-command check accepts it — see
 * `lib/daemon.test.ts`'s "reaps a live __daemon-run registrant" test, same
 * technique) and register it in `home`'s OWN instance registry, exactly the
 * marker `registerDaemonInstance` would write. A real live process, not a
 * mock — `agents daemon status` reads it through the actual registry +
 * `ps`-liveness path, the same one the reaper and `stopDaemon`'s postcondition
 * use.
 */
export declare function spawnFakeRegisteredDaemon(home: string): Promise<ChildProcess>;
/** Register a pid in `home`'s instance registry — the scope stale/duplicate reporting uses. */
export declare function registerInstance(home: string, pid: number): void;
export declare function killFakeDaemon(child: ChildProcess): void;
