import * as cdk from "aws-cdk-lib";
import * as constructs from "constructs";
/**
 * **WARNING:** This resource is deprecated and will be removed in May 2025. If you try to create a new ServerlessInstance, you will create a Flex cluster. As a result, you can't create ServerlessPrivateEndpoints for these new instances. For more details, see [Migrate your programmatic tools from M2, M5, or Serverless Instances to Flex Clusters](https://www.mongodb.com/docs/atlas/flex-migration/). Returns, adds, edits, and removes private endpoints for serverless instances. To learn more, see the Atlas Administration API tab on the following tutorial.
 *
 * @schema CfnServerlessPrivateEndpointProps
 */
export interface CfnServerlessPrivateEndpointProps {
    /**
     * Unique 24-hexadecimal digit string that identifies your project.
     *
     * @schema CfnServerlessPrivateEndpointProps#ProjectId
     */
    readonly projectId: string;
    /**
     * Human-readable label that identifies the serverless instance for which the tenant endpoint will be created.
     *
     * @schema CfnServerlessPrivateEndpointProps#InstanceName
     */
    readonly instanceName: string;
    /**
     * Human-readable comment associated with the private endpoint.
     *
     * @schema CfnServerlessPrivateEndpointProps#Comment
     */
    readonly comment?: string;
    /**
     * Profile used to provide credentials information, (a secret with the cfn/atlas/profile/{Profile}, is required), if not provided default is used
     *
     * @schema CfnServerlessPrivateEndpointProps#Profile
     */
    readonly profile?: string;
    /**
     * Unique string that identifies the private endpoint's network interface.
     *
     * @schema CfnServerlessPrivateEndpointProps#CloudProviderEndpointId
     */
    readonly cloudProviderEndpointId?: string;
    /**
     * IPv4 address of the private endpoint in your Azure VNet that someone added to this private endpoint service.
     *
     * @schema CfnServerlessPrivateEndpointProps#PrivateEndpointIpAddress
     */
    readonly privateEndpointIpAddress?: string;
    /**
     * If true the resource will create the aws private endpoint and assign the Endpoint ID
     *
     * @schema CfnServerlessPrivateEndpointProps#CreateAndAssignAWSPrivateEndpoint
     */
    readonly createAndAssignAwsPrivateEndpoint?: boolean;
    /**
     * Properties used to configure Aws private endpoint
     *
     * @schema CfnServerlessPrivateEndpointProps#AwsPrivateEndpointConfigurationProperties
     */
    readonly awsPrivateEndpointConfigurationProperties?: AwsPrivateEndpointConfig;
}
/**
 * Converts an object of type 'CfnServerlessPrivateEndpointProps' to JSON representation.
 */
export declare function toJson_CfnServerlessPrivateEndpointProps(obj: CfnServerlessPrivateEndpointProps | undefined): Record<string, any> | undefined;
/**
 * AWS Private endpoint configuration properties
 *
 * @schema awsPrivateEndpointConfig
 */
export interface AwsPrivateEndpointConfig {
    /**
     * String Representing the AWS VPC ID (like: vpc-xxxxxxxxxxxxxxxx) (Used For Creating the AWS VPC Endpoint)
     *
     * @schema awsPrivateEndpointConfig#VpcId
     */
    readonly vpcId?: string;
    /**
     * List of string representing the AWS VPC Subnet ID (like: subnet-xxxxxxxxxxxxxxxxx) (Used For Creating the AWS VPC Endpoint)
     *
     * @schema awsPrivateEndpointConfig#SubnetIds
     */
    readonly subnetIds?: string[];
    /**
     * Unique identifiers of the interface endpoints in your VPC that you added to the AWS PrivateLink connection.
     *
     * @schema awsPrivateEndpointConfig#InterfaceEndpointId
     */
    readonly interfaceEndpointId?: string;
    /**
     * Status of the AWS PrivateEndpoint connection.
     *
     * @schema awsPrivateEndpointConfig#AWSPrivateEndpointStatus
     */
    readonly awsPrivateEndpointStatus?: string;
    /**
     * Aws Region
     *
     * @schema awsPrivateEndpointConfig#Region
     */
    readonly region?: string;
}
/**
 * Converts an object of type 'AwsPrivateEndpointConfig' to JSON representation.
 */
export declare function toJson_AwsPrivateEndpointConfig(obj: AwsPrivateEndpointConfig | undefined): Record<string, any> | undefined;
/**
 * A CloudFormation `MongoDB::Atlas::ServerlessPrivateEndpoint`
 *
 * @cloudformationResource MongoDB::Atlas::ServerlessPrivateEndpoint
 * @stability external
 */
export declare class CfnServerlessPrivateEndpoint extends cdk.CfnResource {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME = "MongoDB::Atlas::ServerlessPrivateEndpoint";
    /**
     * Resource props.
     */
    readonly props: CfnServerlessPrivateEndpointProps;
    /**
     * Attribute `MongoDB::Atlas::ServerlessPrivateEndpoint.Id`
     */
    readonly attrId: string;
    /**
     * Attribute `MongoDB::Atlas::ServerlessPrivateEndpoint.EndpointServiceName`
     */
    readonly attrEndpointServiceName: string;
    /**
     * Attribute `MongoDB::Atlas::ServerlessPrivateEndpoint.ErrorMessage`
     */
    readonly attrErrorMessage: string;
    /**
     * Attribute `MongoDB::Atlas::ServerlessPrivateEndpoint.ProviderName`
     */
    readonly attrProviderName: string;
    /**
     * Attribute `MongoDB::Atlas::ServerlessPrivateEndpoint.Status`
     */
    readonly attrStatus: string;
    /**
     * Attribute `MongoDB::Atlas::ServerlessPrivateEndpoint.AwsPrivateEndpointMetaData`
     */
    readonly attrAwsPrivateEndpointMetaData: string;
    /**
     * Create a new `MongoDB::Atlas::ServerlessPrivateEndpoint`.
     *
     * @param scope - scope in which this resource is defined
     * @param id    - scoped id of the resource
     * @param props - resource properties
     */
    constructor(scope: constructs.Construct, id: string, props: CfnServerlessPrivateEndpointProps);
}
