export interface NonceStore { /** * Atomically record a nonce as seen if it has not been seen before. * Returns true on first insert, false if the nonce was already present (replay). * * MUST be atomic: between the existence check and the insert, no other call * can observe a missing-then-present transition. In-memory implementations * achieve this naturally in single-threaded Node. Shared stores must use * primitives like Redis `SET NX` or Firestore transactions. */ setIfAbsent(nonce: string, ttlMs: number): Promise | boolean; ttlMs?: number; } export interface CollectionConfig { address: string; chain: ChainName; } export type ChainName = 'ethereum' | 'bnb' | 'base' | 'robinhood' | 'avalanche' | 'polygon' | 'arbitrum' | 'optimism' | 'chiliz' | 'soneium' | 'plume' | 'worldchain' | 'sonic' | 'gnosis' | 'mantle' | 'scroll' | 'linea' | 'zksync' | 'blast' | 'celo' | 'opbnb' | 'unichain' | 'ink' | 'sei' | 'berachain' | 'apechain' | 'taiko' | 'ronin' | 'viction' | 'xdc' | 'arc'; export interface LocalModeConfig { mockAttest: (wallet: string, collection: string) => Promise | boolean; } export interface AccessConfig { insumerApiKey: string; collections: Record; nonceStore?: NonceStore; cacheTtlMs?: number; attestRetryCount?: number; siweDomain?: string; disabled?: boolean; localMode?: LocalModeConfig; attestBaseUrl?: string; jwksUrl?: string; /** * Post-quantum policy. InsumerAPI returns an ML-DSA-65 companion (`pqJwt`) beside the ES256 JWT. * It is always checked and reported. A companion that is present and FAILS always rejects the pass. * An absent or unverifiable companion rejects the pass only once this date has passed (your own * cutoff, judged by this process's clock). Undefined = reported only. Install `@noble/post-quantum` * to verify companions; without it they are reported as unverifiable. */ pqRequiredFrom?: string | Date; } export interface SiweEnvelope { message: string; signature: string; } export interface ParsedSiwe { domain: string; address: string; uri: string; version: string; chainId: number; nonce: string; issuedAt: string; statement?: string; } export interface AttestationResult { pass: boolean; conditionHash?: string; blockNumber?: string; blockTimestamp?: string; attestedAt?: string; } export declare const CHAIN_IDS: Record; //# sourceMappingURL=types.d.ts.map