/** * TotalReclaw HTTP Client * * Handles communication with the TotalReclaw server over HTTP using Protobuf. */ import { TotalReclawConfig, EncryptedFact, EncryptedSearchResult } from '../types'; /** * HTTP Client for TotalReclaw Server */ export declare class TotalReclawClient { private serverUrl; private timeout; private serializer; private initialized; /** * Create a new TotalReclaw client * * @param config - Client configuration */ constructor(config: TotalReclawConfig); /** * Initialize the client (must be called before making requests) */ init(): Promise; /** * Ensure client is initialized */ private ensureInitialized; /** * Make an HTTP request */ private request; /** * Generate a UUID v7 (time-sorted UUID) * * @returns UUID v7 string */ generateUUIDv7(): string; /** * Check server health */ healthCheck(): Promise<{ status: string; version: string; database: string; }>; /** * Register a new user * * @param authKeyHash - Hashed auth key (from HKDF) * @param salt - Salt used for key derivation * @returns User ID (UUID v7) */ register(authKeyHash: Buffer, salt: Buffer): Promise; /** * Store an encrypted fact * * @param userId - User ID * @param authKey - Auth key for HMAC * @param fact - Encrypted fact to store */ store(userId: string, authKey: Buffer, fact: EncryptedFact): Promise; /** * Search for memories using trapdoors * * @param userId - User ID * @param authKey - Auth key for HMAC * @param trapdoors - Blind index trapdoors from query * @param maxCandidates - Maximum candidates to retrieve * @returns Encrypted search results */ search(userId: string, authKey: Buffer, trapdoors: string[], maxCandidates?: number): Promise; /** * Delete a fact (if supported by server) * * @param userId - User ID * @param authKey - Auth key for HMAC * @param factId - Fact ID to delete */ delete(userId: string, authKey: Buffer, factId: string): Promise; /** * Get the server URL */ getServerUrl(): string; } //# sourceMappingURL=client.d.ts.map