import type { AnalystFinding } from './types';
/** DESCRIPTIVE predicate: does the finding cite at least one observable
 *  (span/event/artifact) evidence ref. Useful for ranking evidence quality or
 *  rendering — it is NOT the steer gate. Evidence presence is the WRONG
 *  discriminator for steering: a legitimate trace-analyst observation may cite
 *  nothing (it would be wrongly rejected), and a judge verdict may cite an
 *  artifact (it would be wrongly admitted). Use `assertNoJudgeVerdict` to gate
 *  steering; use this only where "is this grounded in observable evidence" is the
 *  literal question. */
export declare function isTraceObservable(finding: AnalystFinding): boolean;
/** True iff the finding is a JUDGE VERDICT (an acceptance score lifted into a
 *  finding), identified by provenance set at the lift site — independent of
 *  whatever evidence it cites. */
export declare function isJudgeVerdict(finding: AnalystFinding): boolean;
/**
 * THE steer firewall. Fail-loud guard for any path that admits analyst findings
 * as STEERING input (the `f(trace)` role): rejects — naming the offenders — any
 * finding whose provenance is a judge verdict, rather than let `J` leak into the
 * loop. Returns the findings unchanged for chaining.
 *
 * Call this at the chokepoint where a detector that ALSO scores/gates has its
 * findings turned into a steer (the judge-and-steer dual-role case). It keys on
 * provenance, so it correctly admits evidence-less trace-analyst observations and
 * correctly rejects an artifact-citing judge verdict — the cases an evidence
 * check gets backwards.
 *
 * It is necessary, not sufficient: it stops PROVENANCE-tagged verdicts. A judge
 * whose output is laundered through a hand-built finding with no provenance flag
 * is out of its reach — provenance must be honestly set at every judge→finding
 * lift (today: createJudgeAdapter). That is why the integrity rule lives at the
 * lift site, and why ProposeContext.judgeScores?: never is the complementary
 * compile-time tripwire on the obvious direct channel.
 */
export declare function assertNoJudgeVerdict(findings: ReadonlyArray<AnalystFinding>, context?: string): ReadonlyArray<AnalystFinding>;
//# sourceMappingURL=steer-firewall.d.ts.map