import type { Lock } from '../crypto/index.ts'; export type Keys = { readonly held: string; readonly vouched: string | null; readonly open: string; readonly offered: string; }; export type HeirRecord = { readonly state: 'fresh'; } | ({ readonly state: 'spent'; readonly highest: number; readonly honoured: readonly number[]; } & Keys) | ({ readonly state: 'kept'; } & Keys); export type KeptLock = { readonly ek: string; readonly dk: string; }; export interface Relations { lock(): Lock | undefined; setLock(lock: Lock): void; get(heir: string): HeirRecord | undefined; set(heir: string, record: HeirRecord): void; delete(heir: string): void; kept(): Promise; } export declare const lockOf: (kept: KeptLock | undefined) => Lock | undefined; export declare const keptLock: (lock: Lock) => KeptLock; export declare const GONE = 256; export declare class MemoryRelations implements Relations { #private; lock(): Lock | undefined; setLock(lock: Lock): void; get(heir: string): HeirRecord | undefined; set(heir: string, record: HeirRecord): void; delete(heir: string): void; kept(): Promise; }