{
    "source": "core/types/src/index.ts",
    "name": "NavigationFlowExternalState",
    "type": "object",
    "properties": {
        "_comment": {
            "required": false,
            "node": {
                "type": "string",
                "title": "CommentBase._comment",
                "description": "Add comments that will not be processing, but are useful for code explanation"
            }
        },
        "state_type": {
            "required": true,
            "node": {
                "type": "string",
                "const": "EXTERNAL",
                "title": "NavigationBaseState.state_type",
                "description": "A property to determine the type of state this is"
            }
        },
        "onStart": {
            "required": false,
            "node": {
                "type": "or",
                "or": [
                    {
                        "type": "ref",
                        "ref": "Expression",
                        "title": "NavigationBaseState.onStart"
                    },
                    {
                        "source": "core/types/src/index.ts",
                        "name": "ExpressionObject",
                        "type": "object",
                        "properties": {
                            "exp": {
                                "required": false,
                                "node": {
                                    "type": "ref",
                                    "ref": "Expression",
                                    "title": "ExpressionObject.exp",
                                    "description": "The expression to run"
                                }
                            }
                        },
                        "additionalProperties": false,
                        "title": "ExpressionObject",
                        "description": "An object with an expression in it"
                    }
                ],
                "title": "NavigationBaseState.onStart",
                "description": "An optional expression to run when this view renders"
            }
        },
        "onEnd": {
            "required": false,
            "node": {
                "type": "or",
                "or": [
                    {
                        "type": "ref",
                        "ref": "Expression",
                        "title": "NavigationBaseState.onEnd"
                    },
                    {
                        "source": "core/types/src/index.ts",
                        "name": "ExpressionObject",
                        "type": "object",
                        "properties": {
                            "exp": {
                                "required": false,
                                "node": {
                                    "type": "ref",
                                    "ref": "Expression",
                                    "title": "ExpressionObject.exp",
                                    "description": "The expression to run"
                                }
                            }
                        },
                        "additionalProperties": false,
                        "title": "ExpressionObject",
                        "description": "An object with an expression in it"
                    }
                ],
                "title": "NavigationBaseState.onEnd",
                "description": "An optional expression to run before view transition"
            }
        },
        "exp": {
            "required": false,
            "node": {
                "title": "NavigationBaseState.exp",
                "type": "never"
            }
        },
        "transitions": {
            "required": true,
            "node": {
                "source": "core/types/src/index.ts",
                "name": "NavigationFlowTransition",
                "type": "record",
                "keyType": {
                    "type": "string"
                },
                "valueType": {
                    "type": "string"
                },
                "title": "NavigationFlowTransitionableState.transitions",
                "description": "A mapping of transition-name to FlowState name"
            }
        },
        "ref": {
            "required": true,
            "node": {
                "type": "string",
                "title": "NavigationFlowExternalState.ref",
                "description": "A reference for this external state"
            }
        }
    },
    "additionalProperties": {
        "type": "unknown"
    },
    "title": "NavigationFlowExternalState",
    "description": "External Flow states represent states in the FSM that can't be resolved internally in Player.\nThe flow will wait for the embedded application to manage moving to the next state via a transition"
}