import * as core from "@terrascript/core";
export interface SnapshotCopyArgs extends core.SchemaArgs {
    destinationRegion: string | core.StringOut;
    grantName?: string | core.StringOut;
    retentionPeriod?: number | core.NumberOut;
}
export declare class SnapshotCopy extends core.Schema<SnapshotCopyArgs> {
    destinationRegion: string | core.StringOut;
    grantName?: string | core.StringOut;
    retentionPeriod?: number | core.NumberOut;
}
export interface ClusterNodesArgs extends core.SchemaArgs {
    nodeRole: string | core.StringOut;
    privateIpAddress: string | core.StringOut;
    publicIpAddress: string | core.StringOut;
}
export declare class ClusterNodes extends core.Schema<ClusterNodesArgs> {
    nodeRole: string | core.StringOut;
    privateIpAddress: string | core.StringOut;
    publicIpAddress: string | core.StringOut;
}
export interface LoggingArgs extends core.SchemaArgs {
    bucketName?: string | core.StringOut;
    enable: boolean | core.BooleanOut;
    logDestinationType?: string | core.StringOut;
    logExports?: core.Array<string> | core.ArrayOut<core.StringOut>;
    s3KeyPrefix?: string | core.StringOut;
}
export declare class Logging extends core.Schema<LoggingArgs> {
    bucketName?: string | core.StringOut;
    enable: boolean | core.BooleanOut;
    logDestinationType?: string | core.StringOut;
    logExports?: core.Array<string> | core.ArrayOut<core.StringOut>;
    s3KeyPrefix?: string | core.StringOut;
}
export interface ClusterArgs extends core.ResourceArgs {
    allowVersionUpgrade?: boolean | core.BooleanOut;
    applyImmediately?: boolean | core.BooleanOut;
    aquaConfigurationStatus?: string | core.StringOut;
    automatedSnapshotRetentionPeriod?: number | core.NumberOut;
    availabilityZone?: string | core.StringOut;
    availabilityZoneRelocationEnabled?: boolean | core.BooleanOut;
    clusterIdentifier: string | core.StringOut;
    clusterParameterGroupName?: string | core.StringOut;
    clusterPublicKey?: string | core.StringOut;
    clusterRevisionNumber?: string | core.StringOut;
    clusterSecurityGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    clusterSubnetGroupName?: string | core.StringOut;
    clusterType?: string | core.StringOut;
    clusterVersion?: string | core.StringOut;
    databaseName?: string | core.StringOut;
    defaultIamRoleArn?: string | core.StringOut;
    elasticIp?: string | core.StringOut;
    encrypted?: boolean | core.BooleanOut;
    endpoint?: string | core.StringOut;
    enhancedVpcRouting?: boolean | core.BooleanOut;
    finalSnapshotIdentifier?: string | core.StringOut;
    iamRoles?: core.Array<string> | core.ArrayOut<core.StringOut>;
    kmsKeyId?: string | core.StringOut;
    logging?: Logging;
    maintenanceTrackName?: string | core.StringOut;
    manualSnapshotRetentionPeriod?: number | core.NumberOut;
    masterPassword?: string | core.StringOut;
    masterUsername?: string | core.StringOut;
    nodeType: string | core.StringOut;
    numberOfNodes?: number | core.NumberOut;
    ownerAccount?: string | core.StringOut;
    port?: number | core.NumberOut;
    preferredMaintenanceWindow?: string | core.StringOut;
    publiclyAccessible?: boolean | core.BooleanOut;
    skipFinalSnapshot?: boolean | core.BooleanOut;
    snapshotClusterIdentifier?: string | core.StringOut;
    snapshotCopy?: SnapshotCopy;
    snapshotIdentifier?: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    vpcSecurityGroupIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class Cluster extends core.Resource<ClusterArgs> {
    allowVersionUpgrade?: boolean | core.BooleanOut;
    applyImmediately?: boolean | core.BooleanOut;
    aquaConfigurationStatus?: string | core.StringOut;
    arn: string | core.StringOut;
    automatedSnapshotRetentionPeriod?: number | core.NumberOut;
    availabilityZone?: string | core.StringOut;
    availabilityZoneRelocationEnabled?: boolean | core.BooleanOut;
    clusterIdentifier: string | core.StringOut;
    clusterNodes: core.Array<ClusterNodes> | core.ArrayOut<ClusterNodes>;
    clusterParameterGroupName?: string | core.StringOut;
    clusterPublicKey?: string | core.StringOut;
    clusterRevisionNumber?: string | core.StringOut;
    clusterSecurityGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    clusterSubnetGroupName?: string | core.StringOut;
    clusterType?: string | core.StringOut;
    clusterVersion?: string | core.StringOut;
    databaseName?: string | core.StringOut;
    defaultIamRoleArn?: string | core.StringOut;
    dnsName: string | core.StringOut;
    elasticIp?: string | core.StringOut;
    encrypted?: boolean | core.BooleanOut;
    endpoint?: string | core.StringOut;
    enhancedVpcRouting?: boolean | core.BooleanOut;
    finalSnapshotIdentifier?: string | core.StringOut;
    iamRoles?: core.Array<string> | core.ArrayOut<core.StringOut>;
    id: string | core.StringOut;
    kmsKeyId?: string | core.StringOut;
    logging?: Logging;
    maintenanceTrackName?: string | core.StringOut;
    manualSnapshotRetentionPeriod?: number | core.NumberOut;
    masterPassword?: string | core.StringOut;
    masterUsername?: string | core.StringOut;
    nodeType: string | core.StringOut;
    numberOfNodes?: number | core.NumberOut;
    ownerAccount?: string | core.StringOut;
    port?: number | core.NumberOut;
    preferredMaintenanceWindow?: string | core.StringOut;
    publiclyAccessible?: boolean | core.BooleanOut;
    skipFinalSnapshot?: boolean | core.BooleanOut;
    snapshotClusterIdentifier?: string | core.StringOut;
    snapshotCopy?: SnapshotCopy;
    snapshotIdentifier?: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    vpcSecurityGroupIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    constructor(name: string, args?: ClusterArgs);
    getNamespace(): string;
}
//# sourceMappingURL=cluster.d.ts.map