import { Context } from 'chen/core';
import { RedisConnection } from './connection';
import { ClientOpts } from 'redis';
export { RedisConnection };
/**
 * RedisConfig interface
 */
export interface RedisConfig extends ClientOpts {
}
/**
 * RedisConnectionFactoryConfig interface
 */
export interface RedisConnectionFactoryConfig {
    default: string;
    connections: {
        [name: string]: RedisConfig;
    };
}
/**
 * Redis class
 */
export declare class Redis {
    /**
     * Application context
     * @type {Context}
     */
    protected context: Context;
    /**
     * Redis configuration
     * @type {RedisConnectionFactoryConfig}
     */
    protected config: RedisConnectionFactoryConfig;
    /**
     * Created connections
     * @type {Map<string, RedisConnection>}
     */
    private static connections;
    /**
     * Initialize hook
     */
    init(): void;
    /**
     * Create and get connection
     * @param  {string} name
     * @return {RedisConnection}
     */
    connection(name?: string): RedisConnection;
    /**
     * Create new connection
     * @param  {RedisConfig} config
     * @return {RedisConnection}
     */
    static createConnection(config: RedisConfig): RedisConnection;
}
