import type { CreateMemoryRequest, CreateMemoryResponse, RecallRequest, RecallResponse, VerifyRequest, VerifyResponse, ForgetResponse, ScrubRequest, ScrubResponse, UsageResponse } from './types'; export interface LemmaClientOptions { apiKey: string; /** Defaults to the production /v2 base URL. Point at a local server in dev. */ baseUrl?: string; /** Per-request timeout. Defaults to 10s. */ timeoutMs?: number; /** Retries for 429 (honoring Retry-After) and transient network/5xx failures. Defaults to 3. */ maxRetries?: number; /** Injectable for tests; defaults to the global fetch. */ fetchImpl?: typeof fetch; /** Injectable for tests; avoids real sleeps in the backoff test. */ sleep?: (ms: number) => Promise; } export declare class LemmaClient { private readonly apiKey; private readonly baseUrl; private readonly timeoutMs; private readonly maxRetries; private readonly fetchImpl; private readonly sleep; constructor(options: LemmaClientOptions); /** Store a memory: claims + the evidence they're grounded in (see `collectEvidence`). */ remember(request: CreateMemoryRequest): Promise; /** Search; every result comes back with a verified `state`, never a guess. */ recall(request: RecallRequest): Promise; /** Batch-resolve freshness for known ids without a search round-trip. */ verify(request: VerifyRequest): Promise; /** Permanently forget a memory, scoped to your tenant. */ forget(id: string): Promise; /** Stateless secret-scrubbing pass over text or a serialized tool-call. */ scrub(request: ScrubRequest): Promise; /** Real, counted usage for your tenant — never an estimate. */ usage(): Promise; /** Masked — never prints the raw key, including via `console.log`. */ toString(): string; private request; } export default LemmaClient;