export declare function autoAllowRuleKey(toolName: string, fingerprint: string): string; /** * Translate a raw fingerprint string (e.g. `cmd:git+status`) into the * human-readable form shown in IM receipts and `/approval` listings * (e.g. `命令 git status`). The inverse of inputFingerprint()'s internal * encoding — keep the scheme list in sync if you add new fingerprint * variants. * * Unknown / legacy schemes pass through unchanged so the function is * forward-compatible with future fingerprint additions and backward- * compatible with rules created before the semantic split (no scheme). */ export declare function humanizeFingerprint(fingerprint: string): string; /** * Compute the auto-allow fingerprint — the "kind" of call that, when * approved with `all`, covers future similar calls. * * Semantic per tool (rather than a uniform prefix slice) — fixes two * footguns of the old prefix-based approach: * 1. `Bash git status` and `git stash` collided at 5 chars but split at * 10 — neither setting matched user intuition. We extract the first * two tokens (`cmd:git+status` vs `cmd:git+stash`) so the family is * narrow and predictable. * 2. `Read /tmp/a.txt` and `Read /tmp/b.txt` got distinct fingerprints * at any prefix length below the filename, forcing users to re-`all` * every file. We key on dirname (`dir:/tmp`) so one approval covers * the whole directory. * * Prefixes (`cmd:` / `dir:` / `host:` / `path:` / `pat:` / `query:` / * `url:` / `raw:`) keep the key space disambiguated — rules from * different schemes can never accidentally alias each other, and `raw:` * preserves backward compatibility for unknown tools. * * EXPORTED for unit tests. Not part of the bus's public API; production * call sites all live inside this module. */ export declare function inputFingerprint(toolName: string, input: Record): string; //# sourceMappingURL=fingerprint.d.ts.map