import { Request, ElastiCache as AWSElastiCache } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSElastiCache> = AWSElastiCache[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSElastiCache, Extras> = AWSElastiCache[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class ElastiCache {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "elasticache";
    readonly global: false;
    readonly category: "Database";
    readonly topLevelCalls: readonly ["describeCacheClusters", "describeCacheEngineVersions", "describeCacheParameterGroups", "describeCacheSecurityGroups", "describeCacheSubnetGroups", "describeEvents", "describeGlobalReplicationGroups", "describeReplicationGroups", "describeReservedCacheNodes", "describeReservedCacheNodesOfferings", "describeServiceUpdates", "describeSnapshots", "describeUpdateActions", "describeUserGroups", "describeUsers"];
    addTagsToResource: (params: ParamsFrom<'addTagsToResource', Record<string, never>>) => Promise<ReturnTypeFrom<'addTagsToResource'>>;
    authorizeCacheSecurityGroupIngress: (params: ParamsFrom<'authorizeCacheSecurityGroupIngress', Record<string, never>>) => Promise<ReturnTypeFrom<'authorizeCacheSecurityGroupIngress'>>;
    batchApplyUpdateAction: (params: ParamsFrom<'batchApplyUpdateAction', Record<string, never>>) => Promise<ReturnTypeFrom<'batchApplyUpdateAction'>>;
    batchStopUpdateAction: (params: ParamsFrom<'batchStopUpdateAction', Record<string, never>>) => Promise<ReturnTypeFrom<'batchStopUpdateAction'>>;
    completeMigration: (params: ParamsFrom<'completeMigration', Record<string, never>>) => Promise<ReturnTypeFrom<'completeMigration'>>;
    copySnapshot: (params: ParamsFrom<'copySnapshot', Record<string, never>>) => Promise<ReturnTypeFrom<'copySnapshot'>>;
    createCacheCluster: (params: ParamsFrom<'createCacheCluster', Record<string, never>>) => Promise<ReturnTypeFrom<'createCacheCluster'>>;
    createCacheParameterGroup: (params: ParamsFrom<'createCacheParameterGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'createCacheParameterGroup'>>;
    createCacheSecurityGroup: (params: ParamsFrom<'createCacheSecurityGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'createCacheSecurityGroup'>>;
    createCacheSubnetGroup: (params: ParamsFrom<'createCacheSubnetGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'createCacheSubnetGroup'>>;
    createGlobalReplicationGroup: (params: ParamsFrom<'createGlobalReplicationGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'createGlobalReplicationGroup'>>;
    createReplicationGroup: (params: ParamsFrom<'createReplicationGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'createReplicationGroup'>>;
    createSnapshot: (params: ParamsFrom<'createSnapshot', Record<string, never>>) => Promise<ReturnTypeFrom<'createSnapshot'>>;
    createUser: (params: ParamsFrom<'createUser', Record<string, never>>) => Promise<ReturnTypeFrom<'createUser'>>;
    createUserGroup: (params: ParamsFrom<'createUserGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'createUserGroup'>>;
    decreaseNodeGroupsInGlobalReplicationGroup: (params: ParamsFrom<'decreaseNodeGroupsInGlobalReplicationGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'decreaseNodeGroupsInGlobalReplicationGroup'>>;
    decreaseReplicaCount: (params: ParamsFrom<'decreaseReplicaCount', Record<string, never>>) => Promise<ReturnTypeFrom<'decreaseReplicaCount'>>;
    deleteCacheCluster: (params: ParamsFrom<'deleteCacheCluster', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteCacheCluster'>>;
    deleteCacheParameterGroup: (params: ParamsFrom<'deleteCacheParameterGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteCacheParameterGroup'>>;
    deleteCacheSecurityGroup: (params: ParamsFrom<'deleteCacheSecurityGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteCacheSecurityGroup'>>;
    deleteCacheSubnetGroup: (params: ParamsFrom<'deleteCacheSubnetGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteCacheSubnetGroup'>>;
    deleteGlobalReplicationGroup: (params: ParamsFrom<'deleteGlobalReplicationGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteGlobalReplicationGroup'>>;
    deleteReplicationGroup: (params: ParamsFrom<'deleteReplicationGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteReplicationGroup'>>;
    deleteSnapshot: (params: ParamsFrom<'deleteSnapshot', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteSnapshot'>>;
    deleteUser: (params: ParamsFrom<'deleteUser', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteUser'>>;
    deleteUserGroup: (params: ParamsFrom<'deleteUserGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteUserGroup'>>;
    describeCacheClusters(params: {
        [K in keyof ParamsFrom<'describeCacheClusters', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeCacheClusters', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeCacheClusters'>]-?: ReturnTypeFrom<'describeCacheClusters'>[K];
        }['CacheClusters'];
    }>;
    describeCacheEngineVersions(params: {
        [K in keyof ParamsFrom<'describeCacheEngineVersions', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeCacheEngineVersions', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeCacheEngineVersions'>]-?: ReturnTypeFrom<'describeCacheEngineVersions'>[K];
        }['CacheEngineVersions'];
    }>;
    describeCacheParameterGroups(params: {
        [K in keyof ParamsFrom<'describeCacheParameterGroups', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeCacheParameterGroups', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeCacheParameterGroups'>]-?: ReturnTypeFrom<'describeCacheParameterGroups'>[K];
        }['CacheParameterGroups'];
    }>;
    describeCacheParameters(params: {
        [K in keyof ParamsFrom<'describeCacheParameters', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeCacheParameters', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeCacheParameters'>]-?: ReturnTypeFrom<'describeCacheParameters'>[K];
        }['Parameters'];
    }>;
    describeCacheSecurityGroups(params: {
        [K in keyof ParamsFrom<'describeCacheSecurityGroups', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeCacheSecurityGroups', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeCacheSecurityGroups'>]-?: ReturnTypeFrom<'describeCacheSecurityGroups'>[K];
        }['CacheSecurityGroups'];
    }>;
    describeCacheSubnetGroups(params: {
        [K in keyof ParamsFrom<'describeCacheSubnetGroups', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeCacheSubnetGroups', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeCacheSubnetGroups'>]-?: ReturnTypeFrom<'describeCacheSubnetGroups'>[K];
        }['CacheSubnetGroups'];
    }>;
    describeEngineDefaultParameters(params: {
        [K in keyof ParamsFrom<'describeEngineDefaultParameters', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeEngineDefaultParameters', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeEngineDefaultParameters'>]-?: ReturnTypeFrom<'describeEngineDefaultParameters'>[K];
        }['EngineDefaults']['Parameters'];
    }>;
    describeEvents(params: {
        [K in keyof ParamsFrom<'describeEvents', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeEvents', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeEvents'>]-?: ReturnTypeFrom<'describeEvents'>[K];
        }['Events'];
    }>;
    describeGlobalReplicationGroups(params: {
        [K in keyof ParamsFrom<'describeGlobalReplicationGroups', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeGlobalReplicationGroups', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeGlobalReplicationGroups'>]-?: ReturnTypeFrom<'describeGlobalReplicationGroups'>[K];
        }['GlobalReplicationGroups'];
    }>;
    describeReplicationGroups(params: {
        [K in keyof ParamsFrom<'describeReplicationGroups', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeReplicationGroups', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeReplicationGroups'>]-?: ReturnTypeFrom<'describeReplicationGroups'>[K];
        }['ReplicationGroups'];
    }>;
    describeReservedCacheNodes(params: {
        [K in keyof ParamsFrom<'describeReservedCacheNodes', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeReservedCacheNodes', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeReservedCacheNodes'>]-?: ReturnTypeFrom<'describeReservedCacheNodes'>[K];
        }['ReservedCacheNodes'];
    }>;
    describeReservedCacheNodesOfferings(params: {
        [K in keyof ParamsFrom<'describeReservedCacheNodesOfferings', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeReservedCacheNodesOfferings', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeReservedCacheNodesOfferings'>]-?: ReturnTypeFrom<'describeReservedCacheNodesOfferings'>[K];
        }['ReservedCacheNodesOfferings'];
    }>;
    describeServiceUpdates(params: {
        [K in keyof ParamsFrom<'describeServiceUpdates', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeServiceUpdates', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeServiceUpdates'>]-?: ReturnTypeFrom<'describeServiceUpdates'>[K];
        }['ServiceUpdates'];
    }>;
    describeSnapshots(params: {
        [K in keyof ParamsFrom<'describeSnapshots', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeSnapshots', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeSnapshots'>]-?: ReturnTypeFrom<'describeSnapshots'>[K];
        }['Snapshots'];
    }>;
    describeUpdateActions(params: {
        [K in keyof ParamsFrom<'describeUpdateActions', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeUpdateActions', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeUpdateActions'>]-?: ReturnTypeFrom<'describeUpdateActions'>[K];
        }['UpdateActions'];
    }>;
    describeUserGroups(params: {
        [K in keyof ParamsFrom<'describeUserGroups', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeUserGroups', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeUserGroups'>]-?: ReturnTypeFrom<'describeUserGroups'>[K];
        }['UserGroups'];
    }>;
    describeUsers(params: {
        [K in keyof ParamsFrom<'describeUsers', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeUsers', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeUsers'>]-?: ReturnTypeFrom<'describeUsers'>[K];
        }['Users'];
    }>;
    disassociateGlobalReplicationGroup: (params: ParamsFrom<'disassociateGlobalReplicationGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'disassociateGlobalReplicationGroup'>>;
    failoverGlobalReplicationGroup: (params: ParamsFrom<'failoverGlobalReplicationGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'failoverGlobalReplicationGroup'>>;
    increaseNodeGroupsInGlobalReplicationGroup: (params: ParamsFrom<'increaseNodeGroupsInGlobalReplicationGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'increaseNodeGroupsInGlobalReplicationGroup'>>;
    increaseReplicaCount: (params: ParamsFrom<'increaseReplicaCount', Record<string, never>>) => Promise<ReturnTypeFrom<'increaseReplicaCount'>>;
    listAllowedNodeTypeModifications: (params: ParamsFrom<'listAllowedNodeTypeModifications', Record<string, never>>) => Promise<ReturnTypeFrom<'listAllowedNodeTypeModifications'>>;
    listTagsForResource: (params: ParamsFrom<'listTagsForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForResource'>>;
    modifyCacheCluster: (params: ParamsFrom<'modifyCacheCluster', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyCacheCluster'>>;
    modifyCacheParameterGroup: (params: ParamsFrom<'modifyCacheParameterGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyCacheParameterGroup'>>;
    modifyCacheSubnetGroup: (params: ParamsFrom<'modifyCacheSubnetGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyCacheSubnetGroup'>>;
    modifyGlobalReplicationGroup: (params: ParamsFrom<'modifyGlobalReplicationGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyGlobalReplicationGroup'>>;
    modifyReplicationGroup: (params: ParamsFrom<'modifyReplicationGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyReplicationGroup'>>;
    modifyReplicationGroupShardConfiguration: (params: ParamsFrom<'modifyReplicationGroupShardConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyReplicationGroupShardConfiguration'>>;
    modifyUser: (params: ParamsFrom<'modifyUser', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyUser'>>;
    modifyUserGroup: (params: ParamsFrom<'modifyUserGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyUserGroup'>>;
    purchaseReservedCacheNodesOffering: (params: ParamsFrom<'purchaseReservedCacheNodesOffering', Record<string, never>>) => Promise<ReturnTypeFrom<'purchaseReservedCacheNodesOffering'>>;
    rebalanceSlotsInGlobalReplicationGroup: (params: ParamsFrom<'rebalanceSlotsInGlobalReplicationGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'rebalanceSlotsInGlobalReplicationGroup'>>;
    rebootCacheCluster: (params: ParamsFrom<'rebootCacheCluster', Record<string, never>>) => Promise<ReturnTypeFrom<'rebootCacheCluster'>>;
    removeTagsFromResource: (params: ParamsFrom<'removeTagsFromResource', Record<string, never>>) => Promise<ReturnTypeFrom<'removeTagsFromResource'>>;
    resetCacheParameterGroup: (params: ParamsFrom<'resetCacheParameterGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'resetCacheParameterGroup'>>;
    revokeCacheSecurityGroupIngress: (params: ParamsFrom<'revokeCacheSecurityGroupIngress', Record<string, never>>) => Promise<ReturnTypeFrom<'revokeCacheSecurityGroupIngress'>>;
    startMigration: (params: ParamsFrom<'startMigration', Record<string, never>>) => Promise<ReturnTypeFrom<'startMigration'>>;
    testFailover: (params: ParamsFrom<'testFailover', Record<string, never>>) => Promise<ReturnTypeFrom<'testFailover'>>;
    static fromClient(client: AWSElastiCache): ElastiCache;
    static client(options?: AWSElastiCache.Types.ClientConfiguration): ElastiCache;
}
export {};
