import { DeliveryStreamEncryptionConfigurationInputProps } from './deliverystream/DeliveryStreamEncryptionConfigurationInputProps';
import { HttpEndpointDestinationConfigurationProps } from './deliverystream/HttpEndpointDestinationConfigurationProps';
import { KinesisStreamSourceConfigurationProps } from './deliverystream/KinesisStreamSourceConfigurationProps';
import { Value } from '../../cloudformation/Value';
import { RedshiftDestinationConfigurationProps } from './deliverystream/RedshiftDestinationConfigurationProps';
import { AmazonopensearchserviceDestinationConfigurationProps } from './deliverystream/AmazonopensearchserviceDestinationConfigurationProps';
import { MSKSourceConfigurationProps } from './deliverystream/MSKSourceConfigurationProps';
import { SplunkDestinationConfigurationProps } from './deliverystream/SplunkDestinationConfigurationProps';
import { ExtendedS3DestinationConfigurationProps } from './deliverystream/ExtendedS3DestinationConfigurationProps';
import { AmazonOpenSearchServerlessDestinationConfigurationProps } from './deliverystream/AmazonOpenSearchServerlessDestinationConfigurationProps';
import { ElasticsearchDestinationConfigurationProps } from './deliverystream/ElasticsearchDestinationConfigurationProps';
import { S3DestinationConfigurationProps } from './deliverystream/S3DestinationConfigurationProps';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type DeliveryStreamAttributes = {
    Arn: Attribute<string>;
};
export type DeliveryStream = AwsResource<'AWS::KinesisFirehose::DeliveryStream', DeliveryStreamProperties, DeliveryStreamAttributes>;
/**
  The <code>AWS::KinesisFirehose::DeliveryStream</code> resource specifies an Amazon Kinesis Data Firehose (Kinesis Data Firehose) delivery stream that delivers real-time streaming data to an Amazon Simple Storage Service (Amazon S3), Amazon Redshift, or Amazon Elasticsearch Service (Amazon ES) destination. For more information, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html">Creating an Amazon Kinesis Data Firehose Delivery Stream</a> in the <em>Amazon Kinesis Data Firehose Developer Guide</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html">the AWS Docs</a>
*/
export declare function deliveryStream(deliveryStreamProps?: DeliveryStreamProperties): DeliveryStream;
/**
  The <code>AWS::KinesisFirehose::DeliveryStream</code> resource specifies an Amazon Kinesis Data Firehose (Kinesis Data Firehose) delivery stream that delivers real-time streaming data to an Amazon Simple Storage Service (Amazon S3), Amazon Redshift, or Amazon Elasticsearch Service (Amazon ES) destination. For more information, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html">Creating an Amazon Kinesis Data Firehose Delivery Stream</a> in the <em>Amazon Kinesis Data Firehose Developer Guide</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html">the AWS Docs</a>
*/
export interface DeliveryStreamProperties {
    /** <code>DeliveryStreamEncryptionConfigurationInput</code>  <a name="cfn-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput"></a>
  Specifies the type and Amazon Resource Name (ARN) of the CMK to use for Server-Side Encryption (SSE).<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    deliveryStreamEncryptionConfigurationInput?: DeliveryStreamEncryptionConfigurationInputProps;
    /** <code>HttpEndpointDestinationConfiguration</code>  <a name="cfn-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration"></a>
  Enables configuring Kinesis Firehose to deliver data to any HTTP endpoint destination. You can specify only one destination.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    httpEndpointDestinationConfiguration?: HttpEndpointDestinationConfigurationProps;
    /** <code>KinesisStreamSourceConfiguration</code>  <a name="cfn-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration"></a>
  When a Kinesis stream is used as the source for the delivery stream, a <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html">KinesisStreamSourceConfiguration</a> containing the Kinesis stream ARN and the role ARN for the source stream.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    kinesisStreamSourceConfiguration?: KinesisStreamSourceConfigurationProps;
    /** <p> */
    deliveryStreamType?: Value<string>;
    /** <code>RedshiftDestinationConfiguration</code>  <a name="cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration"></a>
  An Amazon Redshift destination for the delivery stream.<br />
  Conditional. You must specify only one destination configuration.<br />
  If you change the delivery stream destination from an Amazon Redshift destination to an Amazon ES destination, update requires <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt">some interruptions</a>.<br />
  
  Required: Conditional<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    redshiftDestinationConfiguration?: RedshiftDestinationConfigurationProps;
    /** <code>AmazonopensearchserviceDestinationConfiguration</code>  <a name="cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration"></a>
  The destination in Amazon OpenSearch Service. You can specify only one destination.<br />
  
  Required: Conditional<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    amazonopensearchserviceDestinationConfiguration?: AmazonopensearchserviceDestinationConfigurationProps;
    /**  */
    mSKSourceConfiguration?: MSKSourceConfigurationProps;
    /** <code>SplunkDestinationConfiguration</code>  <a name="cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration"></a>
  The configuration of a destination in Splunk for the delivery stream.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    splunkDestinationConfiguration?: SplunkDestinationConfigurationProps;
    /** <code>ExtendedS3DestinationConfiguration</code>  <a name="cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration"></a>
  An Amazon S3 destination for the delivery stream.<br />
  Conditional. You must specify only one destination configuration.<br />
  If you change the delivery stream destination from an Amazon Extended S3 destination to an Amazon ES destination, update requires <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt">some interruptions</a>.<br />
  
  Required: Conditional<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    extendedS3DestinationConfiguration?: ExtendedS3DestinationConfigurationProps;
    /** <code>AmazonOpenSearchServerlessDestinationConfiguration</code>  <a name="cfn-kinesisfirehose-deliverystream-amazonopensearchserverlessdestinationconfiguration"></a>
  Property description not available.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    amazonOpenSearchServerlessDestinationConfiguration?: AmazonOpenSearchServerlessDestinationConfigurationProps;
    /** <code>ElasticsearchDestinationConfiguration</code>  <a name="cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration"></a>
  An Amazon ES destination for the delivery stream.<br />
  Conditional. You must specify only one destination configuration.<br />
  If you change the delivery stream destination from an Amazon ES destination to an Amazon S3 or Amazon Redshift destination, update requires <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt">some interruptions</a>.<br />
  
  Required: Conditional<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    elasticsearchDestinationConfiguration?: ElasticsearchDestinationConfigurationProps;
    /** <code>S3DestinationConfiguration</code>  <a name="cfn-kinesisfirehose-deliverystream-s3destinationconfiguration"></a>
  The <code>S3DestinationConfiguration</code> property type specifies an Amazon Simple Storage Service (Amazon S3) destination to which Amazon Kinesis Data Firehose (Kinesis Data Firehose) delivers data.<br />
  Conditional. You must specify only one destination configuration.<br />
  If you change the delivery stream destination from an Amazon S3 destination to an Amazon ES destination, update requires <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt">some interruptions</a>.<br />
  
  Required: Conditional<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    s3DestinationConfiguration?: S3DestinationConfigurationProps;
    /** <code>DeliveryStreamName</code>  <a name="cfn-kinesisfirehose-deliverystream-deliverystreamname"></a>
  The name of the delivery stream.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>64</code><br />
  
  Pattern: <code>[a-zA-Z0-9_.-]+</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    deliveryStreamName?: Value<string>;
    /** <code>Tags</code>  <a name="cfn-kinesisfirehose-deliverystream-tags"></a>
  A set of tags to assign to the delivery stream. A tag is a key-value pair that you can define and assign to AWS resources. Tags are metadata. For example, you can add friendly names and descriptions or other types of information that can help you distinguish the delivery stream. For more information about tags, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using Cost Allocation Tags</a> in the AWS Billing and Cost Management User Guide.<br />
  You can specify up to 50 tags when creating a delivery stream.<br />
  
  Required: No<br />
  
  Maximum: <code>50</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    tags?: Tag[];
}
