import { Value } from '../../cloudformation/Value';
import { ApplicationResourceLifecycleConfigProps } from './application/ApplicationResourceLifecycleConfigProps';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
/**
  The AWS::ElasticBeanstalk::Application resource is an AWS Elastic Beanstalk Beanstalk resource type that specifies an Elastic Beanstalk application.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-application.html">the AWS Docs</a>
*/
export type Application = AwsResource<'AWS::ElasticBeanstalk::Application', ApplicationProperties>;
export declare function application(applicationProps?: ApplicationProperties): Application;
/**
  The AWS::ElasticBeanstalk::Application resource is an AWS Elastic Beanstalk Beanstalk resource type that specifies an Elastic Beanstalk application.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-application.html">the AWS Docs</a>
*/
export interface ApplicationProperties {
    /** <code>ApplicationName</code>  <a name="cfn-elasticbeanstalk-application-applicationname"></a>
  A name for the Elastic Beanstalk application. If you don’t specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the application name. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html">Name Type</a>.<br />
  If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>100</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> */
    applicationName?: Value<string>;
    /** <code>Description</code>  <a name="cfn-elasticbeanstalk-application-description"></a>
  Your description of the application.<br />
  
  Required: No<br />
  
  Maximum: <code>200</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> */
    description?: Value<string>;
    /** <code>ResourceLifecycleConfig</code>  <a name="cfn-elasticbeanstalk-application-resourcelifecycleconfig"></a>
  Specifies an application resource lifecycle configuration to prevent your application from accumulating too many versions.<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> */
    resourceLifecycleConfig?: ApplicationResourceLifecycleConfigProps;
}
