export declare enum TTL {
    OneMinute = 60000,
    FiveMinutes = 300000,
    OneHour = 3600000,
    OneDay = 86400000,
    OneWeek = 604800000,
    OneMonth = 2592000000
}
export declare class Cache {
    private db;
    private readonly dbName;
    private readonly dbVersion;
    constructor();
    /**
     * Initialize the database connection
     */
    private database;
    /**
     * Store data in the cache with optional TTL
     *
     * @param key - The key to store the data under
     * @param data - The data to store
     * @param ttl - Time to live in milliseconds
     * @returns A promise that resolves to true if the data was stored successfully, false otherwise
     */
    set<T>(key: string, data: T, ttl?: number): Promise<boolean>;
    /**
     * Retrieve data from the cache with type safety
     */
    get<T = unknown>(key: string): Promise<T | null>;
    /**
     * Check if a key exists and is not expired
     */
    has(key: string): Promise<boolean>;
    /**
     * Delete a specific cache item
     */
    delete(key: string): Promise<boolean>;
    /**
     * Clear all cache items
     */
    clear(): Promise<boolean>;
    /**
     * Get cache statistics
     */
    stats(): Promise<{
        totalItems: number;
        expiredItems: number;
        validItems: number;
    } | null>;
    /**
     * Clean up expired items
     */
    cleanup(): Promise<number>;
    /**
     * Get multiple cache items at once
     */
    getMany<T = unknown>(keys: string[]): Promise<(T | null)[]>;
    /**
     * Set multiple cache items at once
     */
    setMany<T>(items: {
        key: string;
        data: T;
        ttl?: number;
    }[]): Promise<boolean[]>;
    /**
     * Close the database connection
     */
    close(): Promise<void>;
}
//# sourceMappingURL=Cache.d.ts.map