import { z } from 'zod'; /** * One record per rule-batch evaluation emitted by `RegexEvaluator` to the * Totem telemetry sink (mmnto-ai/totem#1641). Crosses the disk / * observability boundary, so validated with Zod rather than a plain TS * interface: malformed telemetry should fail loud at write rather than * silently polluting the sink that downstream tooling will parse. * * Path-redaction discipline lives in `redactPath` below; raw absolute * paths only appear when the operator opts in via `--telemetry-full-paths` * (the evaluator passes the redacted or raw path to this schema; the * schema itself does not enforce which variant is recorded). */ export declare const RegexTelemetrySchema: z.ZodObject<{ ruleHash: z.ZodString; redactedPath: z.ZodString; matchedInputSize: z.ZodNumber; elapsedTimeMs: z.ZodNumber; timeoutTriggered: z.ZodBoolean; softWarningTriggered: z.ZodBoolean; }, "strip", z.ZodTypeAny, { ruleHash: string; redactedPath: string; matchedInputSize: number; elapsedTimeMs: number; timeoutTriggered: boolean; softWarningTriggered: boolean; }, { ruleHash: string; redactedPath: string; matchedInputSize: number; elapsedTimeMs: number; timeoutTriggered: boolean; softWarningTriggered: boolean; }>; export type RegexTelemetry = z.infer; /** * Normalize a file path into a redaction-safe form for telemetry. * * Paths inside the repo root are returned as repo-relative; paths outside * the repo root collapse to `>` so `/tmp/foo`, * `C:\Users\alice\secret.ts`, or a sibling-repo path cannot leak into the * telemetry sink unintentionally. The extern hash is stable so deduping * and pattern-spotting still work across runs. * * Callers that want raw absolute paths must opt in explicitly at the * evaluator layer (e.g., `--telemetry-full-paths`) and bypass this helper. */ export declare function redactPath(absOrRelPath: string, repoRoot: string): string; //# sourceMappingURL=telemetry.d.ts.map