"use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.Choice=void 0;const jsiiDeprecationWarnings=require("../../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),chain_1=require("../chain"),state_type_1=require("./private/state-type"),state_1=require("./state");class Choice extends state_1.State{constructor(scope,id,props={}){super(scope,id,props);this.endStates=[],jsiiDeprecationWarnings.aws_cdk_lib_aws_stepfunctions_ChoiceProps(props)}when(condition,next){return jsiiDeprecationWarnings.aws_cdk_lib_aws_stepfunctions_Condition(condition),jsiiDeprecationWarnings.aws_cdk_lib_aws_stepfunctions_IChainable(next),super.addChoice(condition,next.startState),this}otherwise(def){return jsiiDeprecationWarnings.aws_cdk_lib_aws_stepfunctions_IChainable(def),super.makeDefault(def.startState),this}afterwards(options={}){jsiiDeprecationWarnings.aws_cdk_lib_aws_stepfunctions_AfterwardsOptions(options);const endStates=state_1.State.filterNextables(state_1.State.findReachableEndStates(this,{includeErrorHandlers:options.includeErrorHandlers}));if(options.includeOtherwise&&this.defaultChoice)throw new Error(`'includeOtherwise' set but Choice state ${this.stateId} already has an 'otherwise' transition`);return options.includeOtherwise&&endStates.push(new DefaultAsNext(this)),chain_1.Chain.custom(this,endStates,this)}toStateJson(){return{Type:state_type_1.StateType.CHOICE,Comment:this.comment,...this.renderInputOutput(),...this.renderChoices()}}}exports.Choice=Choice,_a=JSII_RTTI_SYMBOL_1,Choice[_a]={fqn:"aws-cdk-lib.aws_stepfunctions.Choice",version:"2.13.0"};class DefaultAsNext{constructor(choice){this.choice=choice}next(state){return this.choice.otherwise(state),chain_1.Chain.sequence(this.choice,state)}}
//# sourceMappingURL=choice.js.map
