import { CacheFlush, Configuration } from '.';
import { CacheClientProps, EagerCacheClientProps } from './cache-client-props';
import { ICacheClient } from '@gomomento/sdk-core/dist/src/clients/ICacheClient';
import { AbstractCacheClient } from '@gomomento/sdk-core/dist/src/internal/clients/cache/AbstractCacheClient';
import { ControlCallOptions } from '@gomomento/sdk-core/dist/src/internal/clients';
/**
 * Momento Cache Client.
 *
 * Features include:
 * - Get, set, and delete data
 * - Create, delete, and list caches
 * - Create, revoke, and list signing keys
 */
export declare class CacheClient extends AbstractCacheClient implements ICacheClient {
    private readonly logger;
    private readonly notYetAbstractedControlClient;
    private readonly _configuration;
    private dataRequestConcurrencySemaphore;
    /**
     * Creates an instance of CacheClient.
     * @param {CacheClientProps} props configuration and credentials for creating a CacheClient.
     */
    constructor(props: CacheClientProps);
    close(): void;
    /**
     * Creates a new instance of CacheClient. If eagerConnectTimeout is present in the given props, the client will
     * eagerly create its connection to Momento. It will wait until the connection is established, or until the timout
     * runs out. It the timeout runs out, the client will be valid to use, but it may still be connecting in the background.
     * @param {EagerCacheClientProps} props configuration and credentials for creating a CacheClient.
     */
    static create(props: EagerCacheClientProps): Promise<CacheClient>;
    /**
     * Returns the configuration used to create the CacheClient.
     *
     * @readonly
     * @type {Configuration} - The configuration used to create the CacheClient.
     * @memberof CacheClient
     */
    get configuration(): Configuration;
    /**
     * Flushes / clears all the items of the given cache
     *
     * @param {string} cacheName - The cache to be flushed.
     * @returns {Promise<CacheFlush.Response>} -
     * {@link CacheFlush.Success} on success.
     * {@link CacheFlush.Error} on failure.
     */
    flushCache(cacheName: string, options?: ControlCallOptions): Promise<CacheFlush.Response>;
}
/**
 * @deprecated use {CacheClient} instead
 */
export declare class SimpleCacheClient extends CacheClient {
}
