/**
 * In-Memory Cache Adapter
 *
 * Provides a cache implementation that runs entirely in memory,
 * suitable for development, testing, or single-instance deployments.
 *
 * Features:
 * - Key-value storage with Map
 * - TTL tracking with automatic expiration
 * - Background cleanup interval for expired entries
 * - Pattern-based key listing (glob patterns)
 *
 * @packageDocumentation
 */
import type { ICacheAdapter } from './types.js';
/**
 * Configuration options for the memory cache
 */
export interface MemoryCacheOptions {
    /** Interval for background cleanup of expired entries (ms) */
    cleanupIntervalMs?: number;
    /** Maximum number of entries (0 = unlimited) */
    maxEntries?: number;
}
/**
 * In-memory cache adapter implementation
 */
export declare class MemoryCacheAdapter implements ICacheAdapter {
    private cache;
    private cleanupTimer;
    private readonly options;
    constructor(options?: MemoryCacheOptions);
    /**
     * Get a value from cache
     */
    get<T>(key: string): Promise<T | null>;
    /**
     * Set a value in cache
     */
    set<T>(key: string, value: T, ttlSeconds?: number): Promise<void>;
    /**
     * Delete a key from cache
     */
    del(key: string): Promise<void>;
    /**
     * Check if a key exists in cache
     */
    exists(key: string): Promise<boolean>;
    /**
     * Get keys matching a pattern
     * Supports glob patterns: * (any characters), ? (single character)
     */
    keys(pattern: string): Promise<string[]>;
    /**
     * Clear all entries from cache
     */
    clear(): Promise<void>;
    /**
     * Get the number of entries in cache
     */
    get size(): number;
    /**
     * Stop the background cleanup timer
     */
    stop(): void;
    /**
     * Start background cleanup of expired entries
     */
    private startCleanup;
    /**
     * Remove expired entries from cache
     */
    private cleanupExpired;
    /**
     * Convert glob pattern to regex
     */
    private patternToRegex;
}
/**
 * Get the default memory cache instance
 */
export declare function getMemoryCacheAdapter(options?: MemoryCacheOptions): ICacheAdapter;
/**
 * Create a new memory cache instance (for testing or isolated usage)
 */
export declare function createMemoryCacheAdapter(options?: MemoryCacheOptions): MemoryCacheAdapter;
/**
 * Reset the default instance (for testing)
 */
export declare function resetMemoryCacheAdapter(): void;
//# sourceMappingURL=memory-cache.d.ts.map