export interface ApplyPendingMaintenanceActionInput {
    /** The pending maintenance action to apply to the resource. Valid actions are: ENGINE_UPDATE ENGINE_UPGRADE SECURITY_UPDATE OS_UPDATE MASTER_USER_PASSWORD_UPDATE */
    applyAction: string;
    /** A value that specifies the type of opt-in request, or undoes an opt-in request. An opt-in request of type IMMEDIATE can't be undone. */
    optInType: 'IMMEDIATE' | 'NEXT_MAINTENANCE' | 'APPLY_ON' | 'UNDO_OPT_IN';
    /** The Amazon DocumentDB Amazon Resource Name (ARN) of the resource to which the pending maintenance action applies. */
    resourceArn: string;
    /** A specific date to apply the pending maintenance action. Required if opt-in-type is APPLY_ON. Format: yyyy/MM/dd HH:mm-yyyy/MM/dd HH:mm */
    applyOn?: string;
}
export interface CopyClusterSnapshotInput {
    /** The Amazon Resource Name (ARN) identifier of the elastic cluster snapshot. */
    snapshotArn: string;
    /** The identifier of the new elastic cluster snapshot to create from the source cluster snapshot. This parameter is not case sensitive. Constraints: Must contain from 1 to 63 letters, numbers, or hyphens */
    targetSnapshotName: string;
    /** Set to true to copy all tags from the source cluster snapshot to the target elastic cluster snapshot. The default is false. */
    copyTags?: boolean;
    /** The Amazon Web Services KMS key ID for an encrypted elastic cluster snapshot. The Amazon Web Services KMS key ID is the Amazon Resource Name (ARN), Amazon Web Services KMS key identifier, or the Amazo */
    kmsKeyId?: string;
    /** The tags to be assigned to the elastic cluster snapshot. */
    tags?: Record<string, string>;
}
export interface CreateClusterInput {
    /** The name of the Amazon DocumentDB elastic clusters administrator. Constraints: Must be from 1 to 63 letters or numbers. The first character must be a letter. Cannot be a reserved word. */
    adminUserName: string;
    /** The password for the Amazon DocumentDB elastic clusters administrator. The password can contain any printable ASCII characters. Constraints: Must contain from 8 to 100 characters. Cannot contain a for */
    adminUserPassword: string;
    /** The authentication type used to determine where to fetch the password used for accessing the elastic cluster. Valid types are PLAIN_TEXT or SECRET_ARN. */
    authType: 'PLAIN_TEXT' | 'SECRET_ARN';
    /** The name of the new elastic cluster. This parameter is stored as a lowercase string. Constraints: Must contain from 1 to 63 letters, numbers, or hyphens. The first character must be a letter. Cannot e */
    clusterName: string;
    /** The number of vCPUs assigned to each elastic cluster shard. Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64. */
    shardCapacity: number;
    /** The number of shards assigned to the elastic cluster. Maximum is 32. */
    shardCount: number;
    /** The number of days for which automatic snapshots are retained. */
    backupRetentionPeriod?: number;
    /** The client token for the elastic cluster. */
    clientToken?: string;
    /** The KMS key identifier to use to encrypt the new elastic cluster. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a cluster using the same Amaz */
    kmsKeyId?: string;
    /** The daily time range during which automated backups are created if automated backups are enabled, as determined by the backupRetentionPeriod. */
    preferredBackupWindow?: string;
    /** The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). Format: ddd:hh24:mi-ddd:hh24:mi Default: a 30-minute window selected at random from an 8-hour bloc */
    preferredMaintenanceWindow?: string;
    /** The number of replica instances applying to all shards in the elastic cluster. A shardInstanceCount value of 1 means there is one writer instance, and any additional instances are replicas that can be */
    shardInstanceCount?: number;
    /** The Amazon EC2 subnet IDs for the new elastic cluster. */
    subnetIds?: string[];
    /** The tags to be assigned to the new elastic cluster. */
    tags?: Record<string, string>;
    /** A list of EC2 VPC security groups to associate with the new elastic cluster. */
    vpcSecurityGroupIds?: string[];
}
export interface CreateClusterSnapshotInput {
    /** The ARN identifier of the elastic cluster of which you want to create a snapshot. */
    clusterArn: string;
    /** The name of the new elastic cluster snapshot. */
    snapshotName: string;
    /** The tags to be assigned to the new elastic cluster snapshot. */
    tags?: Record<string, string>;
}
export interface DeleteClusterInput {
    /** The ARN identifier of the elastic cluster that is to be deleted. */
    clusterArn: string;
}
export interface DeleteClusterSnapshotInput {
    /** The ARN identifier of the elastic cluster snapshot that is to be deleted. */
    snapshotArn: string;
}
export interface GetClusterInput {
    /** The ARN identifier of the elastic cluster. */
    clusterArn: string;
}
export interface GetClusterSnapshotInput {
    /** The ARN identifier of the elastic cluster snapshot. */
    snapshotArn: string;
}
export interface GetPendingMaintenanceActionInput {
    /** Retrieves pending maintenance actions for a specific Amazon Resource Name (ARN). */
    resourceArn: string;
}
export interface ListClustersInput {
    /** The maximum number of elastic cluster snapshot results to receive in the response. */
    maxResults?: number;
    /** A pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond this token, up to the value specified by max-results. If there is no more d */
    nextToken?: string;
}
export interface ListClusterSnapshotsInput {
    /** The ARN identifier of the elastic cluster. */
    clusterArn?: string;
    /** The maximum number of elastic cluster snapshot results to receive in the response. */
    maxResults?: number;
    /** A pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond this token, up to the value specified by max-results. If there is no more d */
    nextToken?: string;
    /** The type of cluster snapshots to be returned. You can specify one of the following values: automated - Return all cluster snapshots that Amazon DocumentDB has automatically created for your Amazon Web */
    snapshotType?: string;
}
export interface ListPendingMaintenanceActionsInput {
    /** The maximum number of results to include in the response. If more records exist than the specified maxResults value, a pagination token (marker) is included in the response so that the remaining resul */
    maxResults?: number;
    /** An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by maxResults. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The ARN identifier of the elastic cluster resource. */
    resourceArn: string;
}
export interface RestoreClusterFromSnapshotInput {
    /** The name of the elastic cluster. */
    clusterName: string;
    /** The ARN identifier of the elastic cluster snapshot. */
    snapshotArn: string;
    /** The KMS key identifier to use to encrypt the new Amazon DocumentDB elastic clusters cluster. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a  */
    kmsKeyId?: string;
    /** The capacity of each shard in the new restored elastic cluster. */
    shardCapacity?: number;
    /** The number of replica instances applying to all shards in the elastic cluster. A shardInstanceCount value of 1 means there is one writer instance, and any additional instances are replicas that can be */
    shardInstanceCount?: number;
    /** The Amazon EC2 subnet IDs for the elastic cluster. */
    subnetIds?: string[];
    /** A list of the tag names to be assigned to the restored elastic cluster, in the form of an array of key-value pairs in which the key is the tag name and the value is the key value. */
    tags?: Record<string, string>;
    /** A list of EC2 VPC security groups to associate with the elastic cluster. */
    vpcSecurityGroupIds?: string[];
}
export interface StartClusterInput {
    /** The ARN identifier of the elastic cluster. */
    clusterArn: string;
}
export interface StopClusterInput {
    /** The ARN identifier of the elastic cluster. */
    clusterArn: string;
}
export interface TagResourceInput {
    /** The ARN identifier of the elastic cluster resource. */
    resourceArn: string;
    /** The tags that are assigned to the elastic cluster resource. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The ARN identifier of the elastic cluster resource. */
    resourceArn: string;
    /** The tag keys to be removed from the elastic cluster resource. */
    tagKeys: string[];
}
export interface UpdateClusterInput {
    /** The ARN identifier of the elastic cluster. */
    clusterArn: string;
    /** The password associated with the elastic cluster administrator. This password can contain any printable ASCII character except forward slash (/), double quote ("), or the "at" symbol (@). Constraints: */
    adminUserPassword?: string;
    /** The authentication type used to determine where to fetch the password used for accessing the elastic cluster. Valid types are PLAIN_TEXT or SECRET_ARN. */
    authType?: 'PLAIN_TEXT' | 'SECRET_ARN';
    /** The number of days for which automatic snapshots are retained. */
    backupRetentionPeriod?: number;
    /** The client token for the elastic cluster. */
    clientToken?: string;
    /** The daily time range during which automated backups are created if automated backups are enabled, as determined by the backupRetentionPeriod. */
    preferredBackupWindow?: string;
    /** The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). Format: ddd:hh24:mi-ddd:hh24:mi Default: a 30-minute window selected at random from an 8-hour bloc */
    preferredMaintenanceWindow?: string;
    /** The number of vCPUs assigned to each elastic cluster shard. Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64. */
    shardCapacity?: number;
    /** The number of shards assigned to the elastic cluster. Maximum is 32. */
    shardCount?: number;
    /** The number of replica instances applying to all shards in the elastic cluster. A shardInstanceCount value of 1 means there is one writer instance, and any additional instances are replicas that can be */
    shardInstanceCount?: number;
    /** The Amazon EC2 subnet IDs for the elastic cluster. */
    subnetIds?: string[];
    /** A list of EC2 VPC security groups to associate with the elastic cluster. */
    vpcSecurityGroupIds?: string[];
}
/** DocDB Elastic service binding for Step Functions SDK integrations. */
export declare class DocDBElastic {
    constructor();
    applyPendingMaintenanceAction<T>(params: ApplyPendingMaintenanceActionInput): Promise<T>;
    copyClusterSnapshot<T>(params: CopyClusterSnapshotInput): Promise<T>;
    createCluster<T>(params: CreateClusterInput): Promise<T>;
    createClusterSnapshot<T>(params: CreateClusterSnapshotInput): Promise<T>;
    deleteCluster<T>(params: DeleteClusterInput): Promise<T>;
    deleteClusterSnapshot<T>(params: DeleteClusterSnapshotInput): Promise<T>;
    getCluster<T>(params: GetClusterInput): Promise<T>;
    getClusterSnapshot<T>(params: GetClusterSnapshotInput): Promise<T>;
    getPendingMaintenanceAction<T>(params: GetPendingMaintenanceActionInput): Promise<T>;
    listClusters<T>(params: ListClustersInput): Promise<T>;
    listClusterSnapshots<T>(params: ListClusterSnapshotsInput): Promise<T>;
    listPendingMaintenanceActions<T>(params: ListPendingMaintenanceActionsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    restoreClusterFromSnapshot<T>(params: RestoreClusterFromSnapshotInput): Promise<T>;
    startCluster<T>(params: StartClusterInput): Promise<T>;
    stopCluster<T>(params: StopClusterInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateCluster<T>(params: UpdateClusterInput): Promise<T>;
}
//# sourceMappingURL=DocDBElastic.d.ts.map