import * as core from "@terrascript/core";
export interface ScalingConfigurationArgs extends core.SchemaArgs {
    autoPause?: boolean | core.BooleanOut;
    maxCapacity?: number | core.NumberOut;
    minCapacity?: number | core.NumberOut;
    secondsUntilAutoPause?: number | core.NumberOut;
    timeoutAction?: string | core.StringOut;
}
export declare class ScalingConfiguration extends core.Schema<ScalingConfigurationArgs> {
    autoPause?: boolean | core.BooleanOut;
    maxCapacity?: number | core.NumberOut;
    minCapacity?: number | core.NumberOut;
    secondsUntilAutoPause?: number | core.NumberOut;
    timeoutAction?: string | core.StringOut;
}
export interface Serverlessv2ScalingConfigurationArgs extends core.SchemaArgs {
    maxCapacity: number | core.NumberOut;
    minCapacity: number | core.NumberOut;
}
export declare class Serverlessv2ScalingConfiguration extends core.Schema<Serverlessv2ScalingConfigurationArgs> {
    maxCapacity: number | core.NumberOut;
    minCapacity: number | core.NumberOut;
}
export interface S3ImportArgs extends core.SchemaArgs {
    bucketName: string | core.StringOut;
    bucketPrefix?: string | core.StringOut;
    ingestionRole: string | core.StringOut;
    sourceEngine: string | core.StringOut;
    sourceEngineVersion: string | core.StringOut;
}
export declare class S3Import extends core.Schema<S3ImportArgs> {
    bucketName: string | core.StringOut;
    bucketPrefix?: string | core.StringOut;
    ingestionRole: string | core.StringOut;
    sourceEngine: string | core.StringOut;
    sourceEngineVersion: string | core.StringOut;
}
export interface RestoreToPointInTimeArgs extends core.SchemaArgs {
    restoreToTime?: string | core.StringOut;
    restoreType?: string | core.StringOut;
    sourceClusterIdentifier: string | core.StringOut;
    useLatestRestorableTime?: boolean | core.BooleanOut;
}
export declare class RestoreToPointInTime extends core.Schema<RestoreToPointInTimeArgs> {
    restoreToTime?: string | core.StringOut;
    restoreType?: string | core.StringOut;
    sourceClusterIdentifier: string | core.StringOut;
    useLatestRestorableTime?: boolean | core.BooleanOut;
}
export interface ClusterArgs extends core.ResourceArgs {
    allocatedStorage?: number | core.NumberOut;
    allowMajorVersionUpgrade?: boolean | core.BooleanOut;
    applyImmediately?: boolean | core.BooleanOut;
    availabilityZones?: core.Array<string> | core.ArrayOut<core.StringOut>;
    backtrackWindow?: number | core.NumberOut;
    backupRetentionPeriod?: number | core.NumberOut;
    clusterIdentifier?: string | core.StringOut;
    clusterIdentifierPrefix?: string | core.StringOut;
    clusterMembers?: core.Array<string> | core.ArrayOut<core.StringOut>;
    copyTagsToSnapshot?: boolean | core.BooleanOut;
    databaseName?: string | core.StringOut;
    dbClusterInstanceClass?: string | core.StringOut;
    dbClusterParameterGroupName?: string | core.StringOut;
    dbInstanceParameterGroupName?: string | core.StringOut;
    dbSubnetGroupName?: string | core.StringOut;
    deletionProtection?: boolean | core.BooleanOut;
    enableGlobalWriteForwarding?: boolean | core.BooleanOut;
    enableHttpEndpoint?: boolean | core.BooleanOut;
    enabledCloudwatchLogsExports?: core.Array<string> | core.ArrayOut<core.StringOut>;
    engine?: string | core.StringOut;
    engineMode?: string | core.StringOut;
    engineVersion?: string | core.StringOut;
    finalSnapshotIdentifier?: string | core.StringOut;
    globalClusterIdentifier?: string | core.StringOut;
    iamDatabaseAuthenticationEnabled?: boolean | core.BooleanOut;
    iamRoles?: core.Array<string> | core.ArrayOut<core.StringOut>;
    iops?: number | core.NumberOut;
    kmsKeyId?: string | core.StringOut;
    masterPassword?: string | core.StringOut;
    masterUsername?: string | core.StringOut;
    port?: number | core.NumberOut;
    preferredBackupWindow?: string | core.StringOut;
    preferredMaintenanceWindow?: string | core.StringOut;
    replicationSourceIdentifier?: string | core.StringOut;
    restoreToPointInTime?: RestoreToPointInTime;
    s3Import?: S3Import;
    scalingConfiguration?: ScalingConfiguration;
    serverlessv2ScalingConfiguration?: Serverlessv2ScalingConfiguration;
    skipFinalSnapshot?: boolean | core.BooleanOut;
    snapshotIdentifier?: string | core.StringOut;
    sourceRegion?: string | core.StringOut;
    storageEncrypted?: boolean | core.BooleanOut;
    storageType?: 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> {
    allocatedStorage?: number | core.NumberOut;
    allowMajorVersionUpgrade?: boolean | core.BooleanOut;
    applyImmediately?: boolean | core.BooleanOut;
    arn: string | core.StringOut;
    availabilityZones?: core.Array<string> | core.ArrayOut<core.StringOut>;
    backtrackWindow?: number | core.NumberOut;
    backupRetentionPeriod?: number | core.NumberOut;
    clusterIdentifier?: string | core.StringOut;
    clusterIdentifierPrefix?: string | core.StringOut;
    clusterMembers?: core.Array<string> | core.ArrayOut<core.StringOut>;
    clusterResourceId: string | core.StringOut;
    copyTagsToSnapshot?: boolean | core.BooleanOut;
    databaseName?: string | core.StringOut;
    dbClusterInstanceClass?: string | core.StringOut;
    dbClusterParameterGroupName?: string | core.StringOut;
    dbInstanceParameterGroupName?: string | core.StringOut;
    dbSubnetGroupName?: string | core.StringOut;
    deletionProtection?: boolean | core.BooleanOut;
    enableGlobalWriteForwarding?: boolean | core.BooleanOut;
    enableHttpEndpoint?: boolean | core.BooleanOut;
    enabledCloudwatchLogsExports?: core.Array<string> | core.ArrayOut<core.StringOut>;
    endpoint: string | core.StringOut;
    engine?: string | core.StringOut;
    engineMode?: string | core.StringOut;
    engineVersion?: string | core.StringOut;
    engineVersionActual: string | core.StringOut;
    finalSnapshotIdentifier?: string | core.StringOut;
    globalClusterIdentifier?: string | core.StringOut;
    hostedZoneId: string | core.StringOut;
    iamDatabaseAuthenticationEnabled?: boolean | core.BooleanOut;
    iamRoles?: core.Array<string> | core.ArrayOut<core.StringOut>;
    id: string | core.StringOut;
    iops?: number | core.NumberOut;
    kmsKeyId?: string | core.StringOut;
    masterPassword?: string | core.StringOut;
    masterUsername?: string | core.StringOut;
    port?: number | core.NumberOut;
    preferredBackupWindow?: string | core.StringOut;
    preferredMaintenanceWindow?: string | core.StringOut;
    readerEndpoint: string | core.StringOut;
    replicationSourceIdentifier?: string | core.StringOut;
    restoreToPointInTime?: RestoreToPointInTime;
    s3Import?: S3Import;
    scalingConfiguration?: ScalingConfiguration;
    serverlessv2ScalingConfiguration?: Serverlessv2ScalingConfiguration;
    skipFinalSnapshot?: boolean | core.BooleanOut;
    snapshotIdentifier?: string | core.StringOut;
    sourceRegion?: string | core.StringOut;
    storageEncrypted?: boolean | core.BooleanOut;
    storageType?: 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