import type { Cizage, Versionage, VersionMajor } from "./table-types.js"; /** * Minor-version keyed registry for one major CESR version family. * * Why this is `minor -> single T` (not `minor -> T[]`): * each `(major, minor)` identifies one authoritative registry snapshot. * Multiple values per minor would introduce ordering/precedence ambiguity. * * Example (`T = CounterCodex`): * { * 0: { GenericGroup: "-A", AttachmentGroup: "-C" }, * 1: { GenericGroup: "-A", AttachmentGroup: "-C", NewCode: "-d" } * } */ export type MinorVersionRegistry = Readonly>; /** * Major+minor keyed CESR registry model. * * There is one `MinorVersionRegistry` branch per major version. * * Example (`T = CounterCodex`): * { * 1: { 0: { GenericGroup: "-T" } }, * 2: { 0: { GenericGroup: "-A" }, 1: { GenericGroup: "-A", NewCode: "-d" } } * } */ export type VersionedRegistry = Readonly>>; /** * Canonical codex shape: symbolic names mapped to CESR counter codes. * * Example: * { * GenericGroup: "-A", * AttachmentGroup: "-C" * } */ export type CounterCodex = Readonly>; /** * Resolution result for a requested major/minor against a versioned registry. * * Example: * { * value: { GenericGroup: "-A", AttachmentGroup: "-C" }, * resolvedMajor: 2, * resolvedMinor: 1, * latestMinor: 1 * } */ export interface VersionedResolution { value: T; resolvedMajor: VersionMajor; resolvedMinor: number; latestMinor: number; } /** * Resolve a major/minor request to the latest supported compatible minor. * * Semantics match KERIpy parser/codex selection: * - major must be supported * - requested minor must not exceed latest supported minor for that major * - selected value binds to latest supported minor for the major */ export declare function resolveVersionedRegistryValue(registry: VersionedRegistry, version: Versionage, label?: string): VersionedResolution; /** Versioned counter codex registry analogous to KERIpy `Codes`. */ export declare const CtrDexByVersion: VersionedRegistry; /** Versioned universal codex registry analogous to KERIpy `UniDex`. */ export declare const UniDexByVersion: VersionedRegistry; /** Versioned special-universal codex registry analogous to KERIpy `SUDex`. */ export declare const SUDexByVersion: VersionedRegistry; /** Versioned message-universal codex registry analogous to KERIpy `MUDex`. */ export declare const MUDexByVersion: VersionedRegistry; /** Generated counter size tables indexed by major/minor for parser primitives. */ export declare const COUNTER_SIZE_TABLES_BY_VERSION: VersionedRegistry>; /** Generated code-name tables indexed by major/minor for annotation/comments. */ export declare const COUNTER_CODE_NAMES_BY_VERSION: VersionedRegistry>>; /** Explicit compatibility-only alias codes retained for interop continuity. */ export declare const LEGACY_COMPAT_COUNTER_CODES_BY_VERSION: VersionedRegistry>; /** Resolve counter codex for a stream version using latest compatible minor. */ export declare function resolveCtrDex(version: Versionage): CounterCodex; /** Resolve universal codex for a stream version using latest compatible minor. */ export declare function resolveUniDex(version: Versionage): CounterCodex; /** Resolve special-universal codex for a stream version. */ export declare function resolveSUDex(version: Versionage): CounterCodex; /** Resolve message-universal codex for a stream version. */ export declare function resolveMUDex(version: Versionage): CounterCodex; /** Resolve generated counter size table for a stream version. */ export declare function resolveCounterSizeTable(version: Versionage): ReadonlyMap; /** Resolve generated counter name table for a stream version. */ export declare function resolveCounterCodeNameTable(version: Versionage): Readonly>; //# sourceMappingURL=counter-version-registry.d.ts.map