import { type TestRunner } from '../../infra/isomorph.test/detectTestRunner'; /** the env key that suppresses the unhooked notice */ export declare const QUIET_ENV_KEY = "TEST_FNS_QUIET"; /** * .what = tells a consumer their runner is not wired for autoprune, once per run * .why = the guarantee is CONDITIONAL on a pair of config keys, and a consumer's * mental model is that cleanup is automatic. a model AHEAD of reality is a * defect in the behavior, not in the human — so the gap is made loud at the * moment it matters, with the config file at fault named * * .note = SILENT where no runner is detectable. a cli, a tsx one-off, or a codegen * step has no runner config to fix, so the named fix would not apply to it * * .note = suppressible via TEST_FNS_QUIET, for a consumer who has read it * * .note = it lives HERE, beside genEphemeralTempDir, rather than under autoprune/, * because both the allocation path and the setup adapter reach for it — so * genTempDir/ is their common ancestor (rule.prefer.most-common-denominator) */ export declare const warnIfUnhooked: (input: { reason: 'setup-absent' | 'teardown-absent'; }) => void; /** * .what = names the config file at fault, as best it can * .why = a repo may hold NINE runner configs that share no base, so "your test * runner" is not an actionable address — the human needs the FILE * * .note = the source is ARGV, never env. 🔴 `process.env.JEST_CONFIG` and * `VITEST_CONFIG` DO NOT EXIST — neither jest 30.2.0 nor vitest 4.0.16 sets * either key. a read of them gives a branch that cannot fire, leaves the * family fallback as the only reachable answer, and lets the vision's * explicit demand — *name the config file at fault* — read as met in review * while it is unmet in every run. * *an unreachable branch is worse than an absent one: it answers the * question a reviewer would otherwise have asked.* * * .note = argv is where the address actually lives — every invocation in this repo * passes it (`jest -c ./jest.unit.config.ts`, `vitest run --config ./x.ts`) * * .note = EXPORTED, because the half-wired family has three members and two of them * live in other modules. were it private, `teardownAutoprune`'s arm — the * mirror of the `teardown-absent` arm above — would carry no `at:` line at * all: a cause and a fix, and the human left to guess WHICH of a repo's * nine configs to edit. *a family whose members are asserted * consistent by comment, while one member cannot reach the helper the * others use, is consistent only in the comment* */ export declare const getOneRunnerConfigPath: (input: { runner: TestRunner; argv: string[]; }) => string; /** * .what = resets the once-per-process notice flag * .why = enables tests to verify the once-per-run guarantee * * @internal - only for test use */ export declare const resetUnhookedNotice: () => void;