/** * Encrypted equality indexes — spec § EDV Usage § Indexes. * * Client-side HMAC-SHA-256 over attribute name + value. The server * never sees plaintext; it matches HMAC bytes verbatim during query. */ export interface IndexedAttribute { name: string; value: string; unique?: boolean; } export interface IndexEntry { hmac: { id: string; type: 'Sha256HmacKey2019'; }; sequence: number; attributes: IndexedAttribute[]; } export declare class IndexComputer { private readonly key; readonly keyId: string; constructor(opts: { key: Uint8Array; keyId: string; }); hmac(plaintext: string): string; buildEntry(args: { sequence: number; attributes: Record; uniqueKeys?: string[]; }): IndexEntry; } /** * Server-side query predicate. Returns true iff some indexed block * contains an attribute matching the HMAC name + value pair. */ export declare function matchesQuery(indexed: Array>, hmacName: string, hmacValue: string): boolean;