import { ResourceBase, ResourceTag as Inner_ResourceTag } from "../../resource";
import { Value, List } from "../../data-types";
export declare class NodeGroupConfiguration {
    NodeGroupId?: Value<string>;
    PrimaryAvailabilityZone?: Value<string>;
    ReplicaAvailabilityZones?: List<Value<string>>;
    ReplicaCount?: Value<number>;
    Slots?: Value<string>;
    constructor(properties: NodeGroupConfiguration);
}
export interface ReplicationGroupProperties {
    Port?: Value<number>;
    PreferredCacheClusterAZs?: List<Value<string>>;
    SnapshotRetentionLimit?: Value<number>;
    Engine?: Value<string>;
    PreferredMaintenanceWindow?: Value<string>;
    SnapshottingClusterId?: Value<string>;
    CacheParameterGroupName?: Value<string>;
    AutomaticFailoverEnabled?: Value<boolean>;
    KmsKeyId?: Value<string>;
    ReplicationGroupDescription: Value<string>;
    AutoMinorVersionUpgrade?: Value<boolean>;
    TransitEncryptionEnabled?: Value<boolean>;
    CacheSecurityGroupNames?: List<Value<string>>;
    CacheSubnetGroupName?: Value<string>;
    ReplicationGroupId?: Value<string>;
    SnapshotName?: Value<string>;
    AuthToken?: Value<string>;
    PrimaryClusterId?: Value<string>;
    SnapshotWindow?: Value<string>;
    NumCacheClusters?: Value<number>;
    EngineVersion?: Value<string>;
    AtRestEncryptionEnabled?: Value<boolean>;
    Tags?: List<Inner_ResourceTag>;
    NotificationTopicArn?: Value<string>;
    NodeGroupConfiguration?: List<NodeGroupConfiguration>;
    SecurityGroupIds?: List<Value<string>>;
    SnapshotArns?: List<Value<string>>;
    ReplicasPerNodeGroup?: Value<number>;
    NumNodeGroups?: Value<number>;
    CacheNodeType?: Value<string>;
}
export default class Inner_ReplicationGroup extends ResourceBase<ReplicationGroupProperties> {
    static NodeGroupConfiguration: typeof NodeGroupConfiguration;
    constructor(properties: ReplicationGroupProperties);
}
