import { Value } from '../../cloudformation/Value';
import { ActionProps } from './listenerrule/ActionProps';
import { RuleConditionProps } from './listenerrule/RuleConditionProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type ListenerRuleAttributes = {
    IsDefault: Attribute<boolean>;
    RuleArn: Attribute<string>;
};
export type ListenerRule = AwsResource<'AWS::ElasticLoadBalancingV2::ListenerRule', ListenerRuleProperties, ListenerRuleAttributes>;
/**
  Specifies a listener rule. The listener must be associated with an Application Load Balancer. Each rule consists of a priority, one or more actions, and one or more conditions.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html">the AWS Docs</a>
*/
export declare function listenerRule(listenerRuleProps: ListenerRuleProperties): ListenerRule;
/**
  Specifies a listener rule. The listener must be associated with an Application Load Balancer. Each rule consists of a priority, one or more actions, and one or more conditions.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html">the AWS Docs</a>
*/
export interface ListenerRuleProperties {
    /** <code>ListenerArn</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-listenerarn"></a>
  The Amazon Resource Name (ARN) of the listener.<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> */
    listenerArn?: Value<string>;
    /** <code>Actions</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-actions"></a>
  The actions.<br />
  The rule must include exactly one of the following types of actions: <code>forward</code>, <code>fixed-response</code>, or <code>redirect</code>, and it must be the last action to be performed. If the rule is for an HTTPS listener, it can also optionally include an authentication action.<br />
  
  Required: Yes<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> */
    actions: ActionProps[];
    /** <code>Priority</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-priority"></a>
  The rule priority. A listener can’t have multiple rules with the same priority.<br />
  If you try to reorder rules by updating their priorities, do not specify a new priority if an existing rule already uses this priority, as this can cause an error. If you need to reuse a priority with a different rule, you must remove it as a priority first, and then specify it in a subsequent update.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>50000</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> */
    priority: Value<number>;
    /** <code>Conditions</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-conditions"></a>
  The conditions.<br />
  The rule can optionally include up to one of each of the following conditions: <code>http-request-method</code>, <code>host-header</code>, <code>path-pattern</code>, and <code>source-ip</code>. A rule can also optionally include one or more of each of the following conditions: <code>http-header</code> and <code>query-string</code>.<br />
  
  Required: Yes<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> */
    conditions: RuleConditionProps[];
}
