import * as core from "@terrascript/core";
export interface ClusterModeArgs extends core.SchemaArgs {
    numNodeGroups?: number | core.NumberOut;
    replicasPerNodeGroup?: number | core.NumberOut;
}
export declare class ClusterMode extends core.Schema<ClusterModeArgs> {
    numNodeGroups?: number | core.NumberOut;
    replicasPerNodeGroup?: number | core.NumberOut;
}
export interface LogDeliveryConfigurationArgs extends core.SchemaArgs {
    destination: string | core.StringOut;
    destinationType: string | core.StringOut;
    logFormat: string | core.StringOut;
    logType: string | core.StringOut;
}
export declare class LogDeliveryConfiguration extends core.Schema<LogDeliveryConfigurationArgs> {
    destination: string | core.StringOut;
    destinationType: string | core.StringOut;
    logFormat: string | core.StringOut;
    logType: string | core.StringOut;
}
export interface ReplicationGroupArgs extends core.ResourceArgs {
    applyImmediately?: boolean | core.BooleanOut;
    atRestEncryptionEnabled?: boolean | core.BooleanOut;
    authToken?: string | core.StringOut;
    autoMinorVersionUpgrade?: string | core.StringOut;
    automaticFailoverEnabled?: boolean | core.BooleanOut;
    availabilityZones?: core.Array<string> | core.ArrayOut<core.StringOut>;
    clusterMode?: ClusterMode;
    dataTieringEnabled?: boolean | core.BooleanOut;
    description?: string | core.StringOut;
    engine?: string | core.StringOut;
    engineVersion?: string | core.StringOut;
    finalSnapshotIdentifier?: string | core.StringOut;
    globalReplicationGroupId?: string | core.StringOut;
    kmsKeyId?: string | core.StringOut;
    logDeliveryConfiguration?: core.Array<LogDeliveryConfiguration> | core.ArrayOut<LogDeliveryConfiguration>;
    maintenanceWindow?: string | core.StringOut;
    multiAzEnabled?: boolean | core.BooleanOut;
    nodeType?: string | core.StringOut;
    notificationTopicArn?: string | core.StringOut;
    numCacheClusters?: number | core.NumberOut;
    numNodeGroups?: number | core.NumberOut;
    numberCacheClusters?: number | core.NumberOut;
    parameterGroupName?: string | core.StringOut;
    port?: number | core.NumberOut;
    preferredCacheClusterAzs?: core.Array<string> | core.ArrayOut<core.StringOut>;
    replicasPerNodeGroup?: number | core.NumberOut;
    replicationGroupDescription?: string | core.StringOut;
    replicationGroupId: string | core.StringOut;
    securityGroupIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    securityGroupNames?: core.Array<string> | core.ArrayOut<core.StringOut>;
    snapshotArns?: core.Array<string> | core.ArrayOut<core.StringOut>;
    snapshotName?: string | core.StringOut;
    snapshotRetentionLimit?: number | core.NumberOut;
    snapshotWindow?: string | core.StringOut;
    subnetGroupName?: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    transitEncryptionEnabled?: boolean | core.BooleanOut;
    userGroupIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class ReplicationGroup extends core.Resource<ReplicationGroupArgs> {
    applyImmediately?: boolean | core.BooleanOut;
    arn: string | core.StringOut;
    atRestEncryptionEnabled?: boolean | core.BooleanOut;
    authToken?: string | core.StringOut;
    autoMinorVersionUpgrade?: string | core.StringOut;
    automaticFailoverEnabled?: boolean | core.BooleanOut;
    availabilityZones?: core.Array<string> | core.ArrayOut<core.StringOut>;
    clusterEnabled: boolean | core.BooleanOut;
    clusterMode?: ClusterMode;
    configurationEndpointAddress: string | core.StringOut;
    dataTieringEnabled?: boolean | core.BooleanOut;
    description?: string | core.StringOut;
    engine?: string | core.StringOut;
    engineVersion?: string | core.StringOut;
    engineVersionActual: string | core.StringOut;
    finalSnapshotIdentifier?: string | core.StringOut;
    globalReplicationGroupId?: string | core.StringOut;
    id: string | core.StringOut;
    kmsKeyId?: string | core.StringOut;
    logDeliveryConfiguration?: core.Array<LogDeliveryConfiguration> | core.ArrayOut<LogDeliveryConfiguration>;
    maintenanceWindow?: string | core.StringOut;
    memberClusters: core.Array<string> | core.ArrayOut<core.StringOut>;
    multiAzEnabled?: boolean | core.BooleanOut;
    nodeType?: string | core.StringOut;
    notificationTopicArn?: string | core.StringOut;
    numCacheClusters?: number | core.NumberOut;
    numNodeGroups?: number | core.NumberOut;
    numberCacheClusters?: number | core.NumberOut;
    parameterGroupName?: string | core.StringOut;
    port?: number | core.NumberOut;
    preferredCacheClusterAzs?: core.Array<string> | core.ArrayOut<core.StringOut>;
    primaryEndpointAddress: string | core.StringOut;
    readerEndpointAddress: string | core.StringOut;
    replicasPerNodeGroup?: number | core.NumberOut;
    replicationGroupDescription?: string | core.StringOut;
    replicationGroupId: string | core.StringOut;
    securityGroupIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    securityGroupNames?: core.Array<string> | core.ArrayOut<core.StringOut>;
    snapshotArns?: core.Array<string> | core.ArrayOut<core.StringOut>;
    snapshotName?: string | core.StringOut;
    snapshotRetentionLimit?: number | core.NumberOut;
    snapshotWindow?: string | core.StringOut;
    subnetGroupName?: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    transitEncryptionEnabled?: boolean | core.BooleanOut;
    userGroupIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    constructor(name: string, args?: ReplicationGroupArgs);
    getNamespace(): string;
}
//# sourceMappingURL=replication_group.d.ts.map