export interface DownloadOptions {
    md5?: boolean;
    headers?: {
        [name: string]: string;
    };
}
export declare class CacheEntry {
    uri: string;
    options: DownloadOptions;
    path: string | undefined;
    isPathResolved: boolean;
    constructor(uri: string, options: DownloadOptions);
    /**
     * Get the path of the cached image, if it exists.
     * If the image is not cached, download it and cache it.
     * @returns {Promise<string | undefined>} The path of the cached image, or undefined if the download failed.
     */
    getPath(): Promise<string | undefined>;
}
/**
 * CacheManager is a class that manages the caching of images.
 */
export default class CacheManager {
    static entries: Map<string, CacheEntry>;
    /**
     * Returns a CacheEntry object for the given uri and options.
     * If the entry does not exist, it is created.
     * @param {string} uri - The uri of the image to cache.
     * @param {DownloadOptions} options - The options for downloading the image.
     * @returns {CacheEntry} The CacheEntry object for the given uri and options.
     */
    static get(uri: string, options: DownloadOptions): CacheEntry;
    /**
     * Clears the cache directory.
     * @returns {Promise<void>} A promise that resolves when the cache is cleared.
     */
    static clearCache(): Promise<void>;
    /**
     * Gets the size of the cache directory.
     * @returns {Promise<number>} A promise that resolves with the size of the cache directory.
     * @throws {Error} If the cache directory is not found.
     */
    static getCacheSize(): Promise<number>;
}
//# sourceMappingURL=cache-manager.d.ts.map