export interface CacheCluster {
    CacheClusterId: string;
    CacheClusterStatus: string;
    Engine: string;
    EngineVersion: string;
    CacheNodeType: string;
    NumCacheNodes: number;
    PreferredAvailabilityZone?: string;
    CacheClusterCreateTime: string;
    CacheNodes?: Array<{
        CacheNodeId: string;
        CacheNodeStatus: string;
        Endpoint?: {
            Address: string;
            Port: number;
        };
    }>;
}
export interface ReplicationGroup {
    ReplicationGroupId: string;
    Status: string;
    Description?: string;
    MemberClusters?: string[];
    NodeGroups?: Array<{
        NodeGroupId: string;
        Status: string;
        PrimaryEndpoint?: {
            Address: string;
            Port: number;
        };
    }>;
}
export interface CacheEngineVersion {
    Engine: string;
    EngineVersion: string;
    CacheParameterGroupFamily: string;
}
/**
 * ElastiCache management using direct API calls
 */
export declare class ElastiCacheClient {
    private client;
    private region;
    constructor(region?: string, profile?: string);
    /**
     * List all cache clusters
     */
    describeCacheClusters(cacheClusterId?: string): Promise<{
        CacheClusters: CacheCluster[];
    }>;
    /**
     * List all replication groups (Redis clusters)
     */
    describeReplicationGroups(replicationGroupId?: string): Promise<{
        ReplicationGroups: ReplicationGroup[];
    }>;
    /**
     * Create a cache cluster
     */
    createCacheCluster(options: {
        cacheClusterId: string;
        engine: 'memcached' | 'redis';
        cacheNodeType: string;
        numCacheNodes?: number;
        engineVersion?: string;
        port?: number;
        securityGroupIds?: string[];
        subnetGroupName?: string;
        tags?: Array<{
            Key: string;
            Value: string;
        }>;
    }): Promise<{
        CacheCluster: CacheCluster;
    }>;
    /**
     * Delete a cache cluster
     */
    deleteCacheCluster(cacheClusterId: string, finalSnapshotId?: string): Promise<void>;
    /**
     * Reboot cache cluster nodes
     */
    rebootCacheCluster(cacheClusterId: string, nodeIds: string[]): Promise<void>;
    /**
     * List available cache engine versions
     */
    describeCacheEngineVersions(engine?: string): Promise<{
        CacheEngineVersions: CacheEngineVersion[];
    }>;
    /**
     * Get cache cluster statistics (mock for now)
     */
    getCacheStatistics(cacheClusterId: string): Promise<{
        cpuUtilization?: number;
        evictions?: number;
        hits?: number;
        misses?: number;
        connections?: number;
    }>;
    /**
     * Parse cache clusters from response
     */
    private parseCacheClusters;
    /**
     * Parse single cache cluster from response
     */
    private parseCacheCluster;
}
