import { Value } from '../../cloudformation/Value';
import { RoutingConfigurationVersionProps } from './statemachinealias/RoutingConfigurationVersionProps';
import { DeploymentPreferenceProps } from './statemachinealias/DeploymentPreferenceProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type StateMachineAliasAttributes = {
    Arn: Attribute<string>;
};
export type StateMachineAlias = AwsResource<'AWS::StepFunctions::StateMachineAlias', StateMachineAliasProperties, StateMachineAliasAttributes>;
/**
  Represents a state machine <a href="https://docs.aws.amazon.com/step-functions/latest/dg/concepts-state-machine-alias.html">alias</a>. An alias routes traffic to one or two versions of the same state machine.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachinealias.html">the AWS Docs</a>
*/
export declare function stateMachineAlias(stateMachineAliasProps?: StateMachineAliasProperties): StateMachineAlias;
/**
  Represents a state machine <a href="https://docs.aws.amazon.com/step-functions/latest/dg/concepts-state-machine-alias.html">alias</a>. An alias routes traffic to one or two versions of the same state machine.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachinealias.html">the AWS Docs</a>
*/
export interface StateMachineAliasProperties {
    /** <code>Description</code>  <a name="cfn-stepfunctions-statemachinealias-description"></a>
  An optional description of the state machine alias.<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> */
    description?: Value<string>;
    /** <code>RoutingConfiguration</code>  <a name="cfn-stepfunctions-statemachinealias-routingconfiguration"></a>
  The routing configuration of an alias. Routing configuration splits <a href="https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html">StartExecution</a> requests between one or two versions of the same state machine.<br />
  Use <code>RoutingConfiguration</code> if you want to explicitly set the alias <a href="https://docs.aws.amazon.com/step-functions/latest/apireference/API_RoutingConfigurationListItem.html#StepFunctions-Type-RoutingConfigurationListItem-weight">weights</a>. Weight is the percentage of traffic you want to route to a state machine version.<br />
  <code>RoutingConfiguration</code> and <code>DeploymentPreference</code> are mutually exclusive properties. You must define only one of these properties.
  
  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> */
    routingConfiguration?: RoutingConfigurationVersionProps[];
    /** <p> */
    deploymentPreference?: DeploymentPreferenceProps;
    /** <code>Name</code>  <a name="cfn-stepfunctions-statemachinealias-name"></a>
  The name of the state machine alias. If you don’t provide a name, it uses an automatically generated name based on the logical ID.<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> */
    name?: Value<string>;
}
