/** * Insight list vocabulary — the filter and ordering tokens `GET /api/insights` * accepts, minted once so every consumer spells them the same way. * * Owner today: the webapp (`webapp/app/lib/insights/insights.ts` — * `TAB_VALUES`, `INSIGHT_CATEGORIES`, `INSIGHT_SEVERITIES`, `SORT_VALUES`). * The MCP's `list_insights` tool re-typed all four by hand and advertised * them on its wire surface, so a token added or renamed in the webapp left * the tool silently offering a filter the route rejects. The MCP now derives * from here, and the route's 400-on-unknown gate is what keeps the two honest * while the webapp still carries its own copies. * * Client-safe (no node built-ins): exported from the root barrel and as the * `@fjall/util/insights/vocabulary` subpath so browser code can take it * without the root barrel. */ export declare const INSIGHT_TAB_VALUES: readonly ["open", "snoozed", "resolved", "all"]; /** @public — tuple companion type; ships with its tuple (knip skips @public) */ export type InsightTab = (typeof INSIGHT_TAB_VALUES)[number]; export declare const INSIGHT_CATEGORIES: readonly ["performance", "cost", "reliability", "security", "deployment"]; /** @public — tuple companion type; ships with its tuple (knip skips @public) */ export type InsightCategory = (typeof INSIGHT_CATEGORIES)[number]; /** Most severe first. */ export declare const INSIGHT_SEVERITIES: readonly ["critical", "warning", "recommendation", "info"]; /** @public — tuple companion type; ships with its tuple (knip skips @public) */ export type InsightSeverity = (typeof INSIGHT_SEVERITIES)[number]; export declare const INSIGHT_SORT_VALUES: readonly ["matters", "severity", "newest", "oldest", "savings"]; /** @public — tuple companion type; ships with its tuple (knip skips @public) */ export type InsightSort = (typeof INSIGHT_SORT_VALUES)[number];