/**
 * Bitcoin Address Derivation Cache Utility
 * Implements LRU (Least Recently Used) caching for Bitcoin address derivation from PKP
 * Avoids repeated SHA256+RIPEMD160 operations for the same PKP ID
 */
import type { BitcoinAddresses } from '../interfaces';
/**
 * Cache statistics
 */
export interface AddressCacheStats {
    size: number;
    hits: number;
    misses: number;
    evictions: number;
    hitRate: number;
}
/**
 * Address cache configuration
 */
export interface AddressCacheConfig {
    maxSize?: number;
    ttlMs?: number;
    debug?: boolean;
}
/**
 * LRU Cache for Bitcoin address derivation
 *
 * Features:
 * - TTL-based expiration
 * - LRU eviction when max size reached
 * - Hit/miss statistics tracking
 * - Memory-efficient (stores only PKP ID and derived addresses)
 */
export declare class BitcoinAddressCache {
    private cache;
    private maxSize;
    private ttlMs;
    private debug;
    private stats;
    constructor(config?: AddressCacheConfig);
    /**
     * Get addresses from cache
     * Returns null if not found or expired
     */
    get(pkpId: string): BitcoinAddresses | null;
    /**
     * Set addresses in cache
     * Evicts LRU entry if cache is full
     */
    set(pkpId: string, value: BitcoinAddresses): void;
    /**
     * Check if entry is expired
     */
    private isExpired;
    /**
     * Evict least recently used entry
     */
    private evictLRU;
    /**
     * Clear all entries
     */
    clear(): void;
    /**
     * Get cache statistics
     */
    getStats(): AddressCacheStats;
    /**
     * Get cache size
     */
    size(): number;
    /**
     * Check if cache has entry
     */
    has(pkpId: string): boolean;
    /**
     * Delete specific entry
     */
    delete(pkpId: string): boolean;
    /**
     * Get all cached PKP IDs (for debugging)
     */
    getKeys(): string[];
    /**
     * Clean expired entries
     */
    cleanExpired(): number;
}
