/** * Verifiable data registry database owner. * * KERIpy correspondence: * - mirrors `keri.vdr.eventing.Reger` * * Boundary: * - this module owns durable VDR/TEL/credential storage and replay helpers * - TEL state machines, registry orchestration, credential issuance, and * verifier policy live in later VDR runtime modules */ import { type Operation } from "effection"; import { Dater, Diger, NumberPrimitive, Prefixer, Saider, SerderACDC, Siger, type Versionage } from "../../../cesr/mod.js"; import { RegistryRecord, RegStateRecord, type VerferCigarCouple } from "../core/records.js"; import { LMDBer, type LMDBerOptions } from "./core/lmdber.js"; import { Broker } from "./escrowing.js"; import { Komer } from "./koming.js"; import { BytesSuber, CatCesrIoSetSuber, CatCesrSuber, CesrDupSuber, CesrIoSetSuber, CesrOnSuber, CesrSuber, IoDupSuber, OnIoDupSuber, SerderSuber } from "./subing.js"; type KeyPart = string | Uint8Array; type TelAnchorTuple = [NumberPrimitive, Diger]; type CredentialAnchorTuple = [Prefixer, NumberPrimitive, Diger]; type TelSealTuple = [Prefixer, NumberPrimitive, Diger]; type TelCompletionTuple = [Prefixer, NumberPrimitive, Saider]; export type CredentialSource = [SerderACDC, Uint8Array]; /** Options for opening a `Reger` LMDB environment. */ export interface RegerOptions extends LMDBerOptions { compat?: boolean; } /** * VDR/TEL credential database owner. * * Bound stores are literal KERIpy `Reger` subkeys. Keeping this class thin * lets higher VDR processors share one storage contract with KERIpy fixtures. */ export declare class Reger extends LMDBer { readonly registries: Set; readonly tevers: Map; tvts: BytesSuber; tels: CesrOnSuber; ancs: CatCesrSuber; baks: IoDupSuber; tibs: CesrDupSuber; oots: OnIoDupSuber; twes: OnIoDupSuber; taes: OnIoDupSuber; tets: CesrSuber; states: Komer; creds: SerderSuber; cancs: CatCesrSuber; spsgs: CesrIoSetSuber; spcgs: CatCesrIoSetSuber; saved: CesrSuber; issus: CesrDupSuber; subjs: CesrDupSuber; schms: CesrDupSuber; mre: CesrSuber; mce: CesrSuber; mse: CesrSuber; txnsb: Broker; regs: Komer; tpwe: CatCesrIoSetSuber; tmse: CatCesrIoSetSuber; tede: CatCesrIoSetSuber; ctel: CesrSuber; cmse: SerderSuber; ccrd: SerderSuber; static readonly TailDirPath = "keri/reg"; static readonly AltTailDirPath = ".tufa/reg"; static readonly CompatAltTailDirPath = ".keri/reg"; static readonly TempPrefix = "keri_reg_"; static readonly MaxNamedDBs = 96; constructor(options?: RegerOptions); /** Open the root LMDB environment and bind the KERIpy `Reger` subdb surface. */ reopen(options?: Partial): Operation; /** Persist one base credential and its anchoring event triple. */ logCred(creder: SerderACDC, prefixer: Prefixer, number: NumberPrimitive, diger: Diger): boolean; /** Load one stored credential and the event triple that anchored it. */ cloneCred(said: string): [SerderACDC, Prefixer, NumberPrimitive, Diger]; /** Iterate TEL event messages for `pre` from ordinal `fn`, with attachments. */ clonePreIter(pre: KeyPart, fn?: number): Generator; /** Clone one TEL event message at sequence number `sn`, with attachments. */ cloneTvtAt(pre: KeyPart, sn?: number): Uint8Array; /** Clone one TEL event message by digest, including KERIpy attachment groups. */ cloneTvt(pre: KeyPart, dig: string | Uint8Array | Diger | Saider): Uint8Array; /** Return recursive source credentials with `SealSourceTriples` attachments. */ sources(_db: unknown, creder: SerderACDC, gvrsn?: Versionage): CredentialSource[]; } /** Open a `Reger` and return the ready-to-use databaser. */ export declare function createReger(options?: RegerOptions): Operation; export {}; //# sourceMappingURL=reger.d.ts.map