###############################################################################
#
#  Welcome to Baml! To use this generated code, please run the following:
#
#  $ pip install baml
#
###############################################################################

# This file was generated by BAML: please do not edit it. Instead, edit the
# BAML files and re-generate this code.
#
# ruff: noqa: E501,F401
# flake8: noqa: E501,F401
# pylint: disable=unused-import,line-too-long
# fmt: off
import baml_py
from enum import Enum
from pydantic import BaseModel, ConfigDict
from typing import Dict, List, Optional, Union


class SelectorStyle(str, Enum):
    
    ID_BASED = "ID_BASED"
    CLASS_BASED = "CLASS_BASED"
    PATH_BASED = "PATH_BASED"
    INNER_TEXT_BASED = "INNER_TEXT_BASED"
    LABEL_BASED = "LABEL_BASED"
    SIBLING_BASED = "SIBLING_BASED"
    HREF_BASED = "HREF_BASED"
    STYLE_BASED = "STYLE_BASED"
    OTHER_ATTRIBUTE_BASED = "OTHER_ATTRIBUTE_BASED"

class Attribute(BaseModel):
    
    
    name: str
    value: str

class Element(BaseModel):
    
    
    tagName: str
    textContent: Optional[str] = None
    attributes: List["Attribute"]

class PlanningStep(BaseModel):
    
    
    step_number: int
    description: str

class Step(BaseModel):
    
    
    step_index: int
    selector: str
    instructions: str
