import { CacheConfiguration } from './configuration';
import { MomentoLoggerFactory } from '@gomomento/sdk-core';
/**
 * Laptop config provides defaults suitable for a medium-to-high-latency dev environment.  Permissive timeouts, retries, and
 * relaxed latency and throughput targets.
 * @export
 * @class Laptop
 */
export declare class Laptop extends CacheConfiguration {
    /**
     * Provides the latest recommended configuration for a laptop development environment.  NOTE: this configuration may
     * change in future releases to take advantage of improvements we identify for default configurations.
     * @param {MomentoLoggerFactory} [loggerFactory=defaultLoggerFactory]
     * @returns {CacheConfiguration}
     */
    static latest(loggerFactory?: MomentoLoggerFactory): CacheConfiguration;
    /**
     * Provides v1 recommended configuration for a laptop development environment.  This configuration is guaranteed not
     * to change in future releases of the Momento node.js SDK.
     * @param {MomentoLoggerFactory} [loggerFactory=defaultLoggerFactory]
     * @returns {CacheConfiguration}
     */
    static v1(loggerFactory?: MomentoLoggerFactory): CacheConfiguration;
}
export declare class Lambda extends CacheConfiguration {
    /**
     * Provides the latest recommended configuration for a lambda environment.  NOTE: this configuration may
     * change in future releases to take advantage of improvements we identify for default configurations.
     * @param {MomentoLoggerFactory} [loggerFactory=defaultLoggerFactory]
     * @returns {CacheConfiguration}
     */
    static latest(loggerFactory?: MomentoLoggerFactory): CacheConfiguration;
}
declare class InRegionDefault extends CacheConfiguration {
    /**
     * Provides the latest recommended configuration for a typical in-region environment.  NOTE: this configuration may
     * change in future releases to take advantage of improvements we identify for default configurations.
     * @param {MomentoLoggerFactory} [loggerFactory=defaultLoggerFactory]
     * @returns {CacheConfiguration}
     */
    static latest(loggerFactory?: MomentoLoggerFactory): CacheConfiguration;
    /**
     * Provides v1 recommended configuration for a typical in-region environment.  This configuration is guaranteed not
     * to change in future releases of the Momento node.js SDK.
     * @param {MomentoLoggerFactory} [loggerFactory=defaultLoggerFactory]
     * @returns {CacheConfiguration}
     */
    static v1(loggerFactory?: MomentoLoggerFactory): CacheConfiguration;
}
declare class InRegionLowLatency extends CacheConfiguration {
    /**
     * Provides the latest recommended configuration for an in-region environment with aggressive low-latency requirements.
     * NOTE: this configuration may change in future releases to take advantage of improvements we identify for default
     * configurations.
     * @param {MomentoLoggerFactory} [loggerFactory=defaultLoggerFactory]
     * @returns {CacheConfiguration}
     */
    static latest(loggerFactory?: MomentoLoggerFactory): CacheConfiguration;
    /**
     * Provides v1 recommended configuration for an in-region environment with aggressive low-latency requirements.
     * This configuration is guaranteed not to change in future releases of the Momento node.js SDK.
     * @param {MomentoLoggerFactory} [loggerFactory=defaultLoggerFactory]
     * @returns {CacheConfiguration}
     */
    static v1(loggerFactory?: MomentoLoggerFactory): CacheConfiguration;
}
/**
 * InRegion provides defaults suitable for an environment where your client is running in the same region as the Momento
 * service.  It has more aggressive timeouts and retry behavior than the Laptop config.
 * @export
 * @class InRegion
 */
export declare class InRegion {
    /**
     * This config prioritizes throughput and client resource utilization.  It has a slightly relaxed client-side timeout
     * setting to maximize throughput.
     * @type {InRegionDefault}
     */
    static Default: typeof InRegionDefault;
    /**
     * This config prioritizes keeping p99.9 latencies as low as possible, potentially sacrificing
     * some throughput to achieve this.  It has a very aggressive client-side timeout.  Use this
     * configuration if the most important factor is to ensure that cache unavailability doesn't force
     * unacceptably high latencies for your own application.
     * @type {InRegionLowLatency}
     */
    static LowLatency: typeof InRegionLowLatency;
}
export {};
