interface ConfiglyOptions {
    host?: string;
    enableCache?: boolean;
    timeout?: number;
}
/**
 * Config.ly: the dead simple place to store and retrieve your static/config data.
 *
 * Remember: *do NOT* assign the result of a get() to a long-lived variable; in order for
 * the value to fetch from the server, you must call get().
 *
 * Each get(key) returns a Promise; the first argument to the Promise fulfillment method is the
 * Configly value for the supplied key. Please see the example:
 *
 * const Configly = require('Configly');
 * const configly = Configly.init('API_KEY');
 *
 * configly.get('keyOne').then((valueForKeyOne) => console.log(valueForKeyOne));
 *
 * // or
 *
 * const run = async () => {
 *   return await configly.get('keyOne');
 * }
 *
 * Note that get(key) may make a server request or fetch a cached value. You should
 * assume it'll make a (fast) HTTP request. If you need something guaranteed to be faster, we
 * recommend storing the value to a local variable; BUT, be aware that this means you won't
 * receive updates to that variable, so be sure to call get() periodically.
 */
export declare class Configly {
    private static instance?;
    private cache;
    private cacheTtl;
    private apiKey;
    private options;
    /**
     * This method should NOT be called externally; please use Configly.init().
     */
    private constructor();
    static init(apiKey: string, options?: ConfiglyOptions): Configly;
    static getInstance(): Configly;
    static isInitialized(): boolean;
    static getUnixTimestampSecs(): number;
    _isCached(key: string): boolean;
    _cacheGet(key: string): any;
    /**
     * Fetch the value for the supplied key. This is an async call; it may be lightning fast as the
     * value may be cached.
     *
     * Configly.init() must be called before any invocation of get
     *
     * @param {String} key - the key to fetch.
     * @param {Object?} [options] overrides the global parameters set in the constructor for this
     *  `get` request only (optional)
     *     @property {Number} enableCache (default: true) - disables the cache, resulting in an HTTP
     *       fetch on every `get` call.
     *     @property {Number} timeout (default: 3000) - timeout for request to Configly for data in ms.
     * @return { Promse<String | Number | Boolean | Array | Object | Error> } returns, on success,
     *   a promise of fulfilled with the stored value(s) as typed in Config.ly. On error, returns
     *   a failed promise with error:
     *     - TypeError if key is not a string or omitted
     *     - Error if key an empty string
     */
    get(key: string, options?: ConfiglyOptions): Promise<any>;
    static makeError(status: string, message: string, originalError: any): {
        status: string;
        message: string;
        originalError: any;
    };
    static handleGetError(error: any): Promise<never>;
    /**
     * Destroys singleton; really meant for testing snd likely should not be used
     * externally.
     */
    destroy(): void;
}
export declare const ERRORS: {
    OTHER: string;
    CONNECTION_ERROR: string;
    INVALID_API_KEY: string;
};
export default Configly;
