/** * Get the three-letter display prefix for an element kind. Multi-word type * names intentionally use one shared family (OperationalWorkflow → OPR), * leaving the numeric sequence to provide uniqueness. */ export declare function kindToPrefix(kind: string): string; /** * The URL family segment — first hyphen-separated token of the prefix. * e.g. "REQ" → "REQ", "HZD" → "HZD", "OPR" → "OPR" */ export declare function prefixToFamily(prefix: string): string; /** * Assign sequential short IDs to a group of elements sharing one prefix. * * A short ID is a traceability handle: once an element has one it keeps it, and * a number belonging to a deleted element is never handed to a different one. * So assignment is MONOTONIC, not positional — a new element takes the next * free number, and neither adding nor deleting renumbers anything that already * had an ID. * * `prior` carries the assignments made on earlier runs, including entries for * elements that have since been deleted: those set the high-water mark and are * what stops a retired number being reused. Called without it, every element is * new and numbering starts at 1. * * This function used to sort lexicographically and number by position, which * renumbered on every insert — `bravo` moved REQ-1 → REQ-2 the moment an * `alpha` appeared, and deleting shifted the survivors back. The doc comment * already claimed the behaviour implemented here; the code did not match it, * and MCP, the LLM tools and the constraint evaluator were all reading the * unstable value. * * There is no renumbering, by design. Numbers only ever go up and gaps are * expected — a gap is the record that something was deleted, and closing it * would repoint every external reference to the numbers above it. * * Format: {PREFIX}-{n} e.g. "HZD-1", "HZD-2", "OPR-1", "OPR-2" * * Returns a Map from element id → shortId. */ export declare function assignSequentialShortIds(prefix: string, elementIds: string[], prior?: ReadonlyMap | Record): Map; /** * Parse a shortId back to its prefix and sequence number. * e.g. "OPR-3" → { prefix: "OPR", seq: 3 } * Returns null if the format is unrecognised. */ export declare function parseShortId(shortId: string): { prefix: string; seq: number; } | null; //# sourceMappingURL=short-id.d.ts.map