export interface GetOptions {
    integrity?: string | undefined;
    size?: number | undefined;
    memoize?: boolean | undefined;
}
export interface PutOptions {
    integrity?: string | undefined;
    size?: number | undefined;
    metadata?: any | undefined;
    memoize?: boolean | undefined;
}
export interface CacheEntry {
    data: Buffer;
    integrity: string;
    key: string;
    metadata?: any | undefined;
    path: string;
    size: number;
    time: number;
}
export interface RemoveOptions {
    /**
     * Optional key prefix to filter removals.
     * If provided, only keys starting with this prefix will be removed.
     * Can include wildcards (*) for pattern matching.
     *
     * @example
     * { prefix: 'socket-sdk' } // Simple prefix
     * { prefix: 'socket-sdk:scans:abc*' } // With wildcard
     */
    prefix?: string | undefined;
}
/**
 * Get the cacache module for cache operations.
 */
export declare function getCacache(): any;
/**
 * Clear entries from the Socket shared cache.
 *
 * Supports wildcard patterns (*) in prefix for flexible matching.
 * For simple prefixes without wildcards, uses efficient streaming.
 * For wildcard patterns, iterates and matches each entry.
 *
 * @param options - Optional configuration for selective clearing
 * @param options.prefix - Prefix or pattern to match (supports * wildcards)
 * @returns Number of entries removed (only when prefix is specified)
 *
 * @example
 * // Clear all entries
 * await clear()
 *
 * @example
 * // Clear entries with simple prefix
 * const removed = await clear({ prefix: 'socket-sdk:scans' })
 * console.log(`Removed ${removed} scan cache entries`)
 *
 * @example
 * // Clear entries with wildcard pattern
 * await clear({ prefix: 'socket-sdk:scans:abc*' })
 * await clear({ prefix: 'socket-sdk:npm/lodash/*' })
 */
export declare function clear(options?: RemoveOptions | undefined): Promise<number | undefined>;
/**
 * Get data from the Socket shared cache by key.
 * @throws {Error} When cache entry is not found.
 * @throws {TypeError} If key contains wildcards (*)
 */
export declare function get(key: string, options?: GetOptions | undefined): Promise<CacheEntry>;
/**
 * Put data into the Socket shared cache with a key.
 *
 * @throws {TypeError} If key contains wildcards (*)
 */
export declare function put(key: string, data: string | Buffer, options?: PutOptions | undefined): Promise<any>;
/**
 * Remove an entry from the Socket shared cache by key.
 *
 * @throws {TypeError} If key contains wildcards (*)
 */
export declare function remove(key: string): Promise<unknown>;
/**
 * Get data from the Socket shared cache by key without throwing.
 */
export declare function safeGet(key: string, options?: GetOptions | undefined): Promise<CacheEntry | undefined>;
/**
 * Execute a callback with a temporary directory for cache operations.
 */
export declare function withTmp<T>(callback: (tmpDirPath: string) => Promise<T>): Promise<T>;
