# -*- coding: utf-8 -*-
# autogenerated by kiara

from typing import *

from kiara_plugin.streamlit.streamlit import KiaraStreamlit
from streamlit.delta_generator import DeltaGenerator

# imports
if TYPE_CHECKING:
    import uuid

    import kiara
    import streamlit
    from kiara.interfaces.python_api.models.job import JobDesc
    from kiara.models.values.value import Value
    from kiara.models.values.value_schema import ValueSchema
    from kiara_plugin.streamlit.components.workflow import WorkflowSession
    from kiara_plugin.streamlit.components.workflow.dynamic import (
        WorkflowSessionDynamic,
    )
    from kiara_plugin.streamlit.components.workflow.static import WorkflowSessionStatic


# Protocol class with all available component attributes
class KiaraStreamlitComponents(Protocol):
    @property
    def api(self) -> "kiara.api.KiaraAPI":
        """Returns the Kiara API instance used by the API."""

    def ask_next_step(
        self,
        value: "Value",
        session: "WorkflowSessionDynamic",
        columns: "Union[Tuple[int, int], Tuple[streamlit.delta_generator.DeltaGenerator, streamlit.delta_generator.DeltaGenerator]]" = (
            1,
            4,
        ),
        key: "Union[None, str]" = "-- generated --",
    ):
        """-- n/a --"""

    def component_info(
        self,
        items: "Union[str, List[str], None]" = None,
        height: "Union[None, int]" = 400,
        columns: "Union[Tuple[int, int], Tuple[streamlit.delta_generator.DeltaGenerator, streamlit.delta_generator.DeltaGenerator], None]" = (
            1,
            4,
        ),
        key: "Union[None, str]" = "-- generated --",
    ):
        """Display information about a kiara streamlit component.

        This is used to create what you see here.
        """

    def context_switch_control(
        self,
        switch_to_selected: "Union[None, bool]" = True,
        allow_create: "Union[None, bool]" = False,
        key: "Union[None, str]" = "-- generated --",
    ):
        """A component to switch between kiara contexts.

            A *kiara* context is used to separate different sets of data and configuration, and is
        useful to keep datasets and processing results organized.
        """

    def current_values_preview(
        self,
        values: "Mapping[str, kiara.models.values.value.Value]",
        add_value_types: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """-- n/a --"""

    def display_value_properties(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Display the properties of a value."""

    def explore_database(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        display_style: "Union[None, str]" = "default",
        height: "Union[None, int]" = None,
        show_properties: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Preview a value of type 'database'."""

    def explore_table(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        display_style: "Union[None, str]" = "default",
        height: "Union[None, int]" = None,
        show_properties: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Explore a 'table' value visually."""

    def explore_tables(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        display_style: "Union[None, str]" = "default",
        height: "Union[None, int]" = None,
        show_properties: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Preview a value of type 'tables'."""

    def fields_info(
        self,
        fields: "Mapping[str, kiara.models.values.value_schema.ValueSchema]",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Display information about a set of input fields.

        This is mostly used to display the input requirements of an operation or pipeline to users.
        """

    def import_network_data(
        self,
        result_field: "Union[None, str]" = None,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        display_style: "Union[None, str]" = "default",
        reuse_previous_preview_results: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """-- n/a --"""

    def import_table(
        self,
        result_field: "Union[None, str]" = None,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        display_style: "Union[None, str]" = "default",
        reuse_previous_preview_results: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """-- n/a --"""

    def input_boolean(
        self,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render a checkbox for a boolean input."""

    def input_file(
        self,
        accepted_file_extensions: "List[str]",
        allowed_input_methods: "List[str]",
        show_preview: "Union[None, bool]" = None,
        add_existing_file_option: "Union[None, bool]" = False,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render a text input widget."""

    def input_float(
        self,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render an input widget for a floating point number.

            You can select between two different styles:
        - "default": a number input widget
        - "text_input": a text input widget, which will be converted to an integer
        """

    def input_integer(
        self,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render an integer input widget.

            You can select between two different styles:
        - "default": a number input widget
        - "text_input": a text input widget, which will be converted to an integer
        """

    def input_list(
        self,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render a widget for input a list.

        Currently, only lists of strings are supported.
        """

    def input_string(
        self,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render a text input widget."""

    def inputs_for_fields(
        self,
        fields: "Mapping[str, kiara.models.values.value_schema.ValueSchema]",
        constants: "Dict[str, Any]",
        smart_label: "Union[None, bool]" = True,
        profile: "Union[None, str]" = "default",
        max_columns: "Union[None, int]" = 3,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render a panel containing input widgets for each of the provided fields.

        The type of input widgets is determined by the type of each field schema.
        """

    def operation_documentation(
        self,
        height: "Union[None, int]" = 400,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Displays documentation for all available operations."""

    def operation_info(
        self,
        items: "Union[str, List[str], None]" = None,
        height: "Union[None, int]" = 400,
        columns: "Union[Tuple[int, int], Tuple[streamlit.delta_generator.DeltaGenerator, streamlit.delta_generator.DeltaGenerator], None]" = (
            1,
            4,
        ),
        key: "Union[None, str]" = "-- generated --",
    ):
        """Displays information for all or a single operation.

            If you only provide a single item, documentation for this item will be shown. Otherwise, a list
        will be rendered on the left, and users can select one of the available items to get information for.
        """

    def operation_inputs(
        self,
        operation_id: "str",
        ignore_inputs: "List[str]",
        module_config: "Dict[str, Any]",
        constants: "Dict[str, Any]",
        smart_label: "Union[None, bool]" = True,
        profile: "Union[None, str]" = "default",
        max_columns: "Union[None, int]" = 3,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render all inputs for a specifc operation."""

    def operation_process_panel(
        self,
        operation_id: "str",
        fixed_inputs: "Dict[str, Any]",
        module_config: "Dict[str, Any]",
        reuse_previous_result: "Union[None, bool]" = False,
        key: "Union[None, str]" = "-- generated --",
    ):
        """-- n/a --"""

    def pick_value(
        self,
        values: "Mapping[str, kiara.models.values.value.Value]",
        show_preview: "Union[None, bool]" = None,
        display_value_type: "Union[None, bool]" = None,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render a selectbox with the provided all the values in the provided value map."""

    def pipeline_graph(
        self,
        pipeline: "Union[str, kiara.models.module.operation.Operation, kiara.interfaces.python_api.models.info.OperationInfo, kiara.models.module.pipeline.PipelineConfig, kiara.models.module.pipeline.pipeline.Pipeline]",
        graph_type: "Union[None, str]" = "execution",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Display the structure of a pipeline as a graph."""

    def preview(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        display_style: "Union[None, str]" = "default",
        height: "Union[None, int]" = None,
        show_properties: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """The default preview component, will render a preview component dependent on the data type of the provided value."""

    def preview_array(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        display_style: "Union[None, str]" = "default",
        height: "Union[None, int]" = None,
        show_properties: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Preview a value of type 'array'."""

    def preview_boolean(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        display_style: "Union[None, str]" = "default",
        height: "Union[None, int]" = None,
        show_properties: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Preview a value of type 'boolean'."""

    def preview_database(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        display_style: "Union[None, str]" = "default",
        height: "Union[None, int]" = None,
        show_properties: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Preview a value of type 'database'."""

    def preview_dict(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        display_style: "Union[None, str]" = "default",
        height: "Union[None, int]" = None,
        show_properties: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Preview a value of type 'dict'."""

    def preview_file(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        display_style: "Union[None, str]" = "default",
        height: "Union[None, int]" = None,
        show_properties: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Preview a value of type 'file'."""

    def preview_file_bundle(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        display_style: "Union[None, str]" = "default",
        height: "Union[None, int]" = None,
        show_properties: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Preview a value of type 'file_bundle'."""

    def preview_float(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        display_style: "Union[None, str]" = "default",
        height: "Union[None, int]" = None,
        show_properties: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Preview a value of type 'float'."""

    def preview_integer(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        display_style: "Union[None, str]" = "default",
        height: "Union[None, int]" = None,
        show_properties: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Preview a value of type 'integer'."""

    def preview_list(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        display_style: "Union[None, str]" = "default",
        height: "Union[None, int]" = None,
        show_properties: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Preview a value of type 'list'."""

    def preview_network_data(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        display_style: "Union[None, str]" = "default",
        height: "Union[None, int]" = None,
        show_properties: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Preview a value of type 'network data'.

        Currently, this displays a graph, as well as the nodes and edges tables. The graph is only a preview, and takes a while to render depending on the network data size, this will replaced at some point.
        """

    def preview_none(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        display_style: "Union[None, str]" = "default",
        height: "Union[None, int]" = None,
        show_properties: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Preview a none-type value, you should not need this'."""

    def preview_string(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        display_style: "Union[None, str]" = "default",
        height: "Union[None, int]" = None,
        show_properties: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Preview a value of type 'string'."""

    def preview_table(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        display_style: "Union[None, str]" = "default",
        height: "Union[None, int]" = None,
        show_properties: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Preview a value of type 'table'."""

    def preview_tables(
        self,
        value: "Union[str, uuid.UUID, kiara.models.values.value.Value]",
        display_style: "Union[None, str]" = "default",
        height: "Union[None, int]" = None,
        show_properties: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """Preview a value of type 'tables'."""

    def run_job_panel(
        self,
        job_desc: "JobDesc",
        disabled: "Union[None, bool]" = False,
        run_instantly: "Union[None, bool]" = False,
        preview_result: "Union[None, bool]" = False,
        add_save_option: "Union[None, bool]" = False,
        reuse_previous_result: "Union[None, bool]" = False,
        key: "Union[None, str]" = "-- generated --",
    ):
        """-- n/a --"""

    def select_array(
        self,
        add_import_widget: "Union[str, None, bool]" = None,
        display_value_type: "Union[None, bool]" = None,
        show_preview: "Union[None, bool]" = None,
        value_has_alias: "Union[None, bool]" = True,
        add_no_value_option: "Union[None, bool]" = False,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render an input widget that prompts the user for a value of type 'array'."""

    def select_bytes(
        self,
        add_import_widget: "Union[str, None, bool]" = None,
        display_value_type: "Union[None, bool]" = None,
        show_preview: "Union[None, bool]" = None,
        value_has_alias: "Union[None, bool]" = True,
        add_no_value_option: "Union[None, bool]" = False,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render an input widget that prompts the user for a value of type 'bytes'."""

    def select_database(
        self,
        add_import_widget: "Union[str, None, bool]" = None,
        display_value_type: "Union[None, bool]" = None,
        show_preview: "Union[None, bool]" = None,
        value_has_alias: "Union[None, bool]" = True,
        add_no_value_option: "Union[None, bool]" = False,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render an input widget that prompts the user for a value of type 'database'."""

    def select_date(
        self,
        add_import_widget: "Union[str, None, bool]" = None,
        display_value_type: "Union[None, bool]" = None,
        show_preview: "Union[None, bool]" = None,
        value_has_alias: "Union[None, bool]" = True,
        add_no_value_option: "Union[None, bool]" = False,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render an input widget that prompts the user for a value of type 'date'."""

    def select_dict(
        self,
        add_import_widget: "Union[str, None, bool]" = None,
        display_value_type: "Union[None, bool]" = None,
        show_preview: "Union[None, bool]" = None,
        value_has_alias: "Union[None, bool]" = True,
        add_no_value_option: "Union[None, bool]" = False,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render an input widget that prompts the user for a value of type 'dict'."""

    def select_file(
        self,
        add_import_widget: "Union[str, None, bool]" = None,
        display_value_type: "Union[None, bool]" = None,
        show_preview: "Union[None, bool]" = None,
        value_has_alias: "Union[None, bool]" = True,
        add_no_value_option: "Union[None, bool]" = False,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render an input widget that prompts the user for a value of type 'file'."""

    def select_file_bundle(
        self,
        add_import_widget: "Union[str, None, bool]" = None,
        display_value_type: "Union[None, bool]" = None,
        show_preview: "Union[None, bool]" = None,
        value_has_alias: "Union[None, bool]" = True,
        add_no_value_option: "Union[None, bool]" = False,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render an input widget that prompts the user for a value of type 'file_bundle'."""

    def select_html(
        self,
        add_import_widget: "Union[str, None, bool]" = None,
        display_value_type: "Union[None, bool]" = None,
        show_preview: "Union[None, bool]" = None,
        value_has_alias: "Union[None, bool]" = True,
        add_no_value_option: "Union[None, bool]" = False,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render an input widget that prompts the user for a value of type 'html'."""

    def select_kiara_model(
        self,
        add_import_widget: "Union[str, None, bool]" = None,
        display_value_type: "Union[None, bool]" = None,
        show_preview: "Union[None, bool]" = None,
        value_has_alias: "Union[None, bool]" = True,
        add_no_value_option: "Union[None, bool]" = False,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render an input widget that prompts the user for a value of type 'kiara_model'."""

    def select_kiara_model_list(
        self,
        add_import_widget: "Union[str, None, bool]" = None,
        display_value_type: "Union[None, bool]" = None,
        show_preview: "Union[None, bool]" = None,
        value_has_alias: "Union[None, bool]" = True,
        add_no_value_option: "Union[None, bool]" = False,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render an input widget that prompts the user for a value of type 'kiara_model_list'."""

    def select_kiara_pipeline(
        self,
        add_import_widget: "Union[str, None, bool]" = None,
        display_value_type: "Union[None, bool]" = None,
        show_preview: "Union[None, bool]" = None,
        value_has_alias: "Union[None, bool]" = True,
        add_no_value_option: "Union[None, bool]" = False,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render an input widget that prompts the user for a value of type 'kiara_pipeline'."""

    def select_network_data(
        self,
        add_import_widget: "Union[str, None, bool]" = None,
        display_value_type: "Union[None, bool]" = None,
        show_preview: "Union[None, bool]" = None,
        value_has_alias: "Union[None, bool]" = True,
        add_no_value_option: "Union[None, bool]" = False,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render an input widget that prompts the user for a value of type 'network_data'."""

    def select_pipeline(
        self, filters: "List[str]", key: "Union[None, str]" = "-- generated --"
    ):
        """-- n/a --"""

    def select_table(
        self,
        add_import_widget: "Union[str, None, bool]" = None,
        display_value_type: "Union[None, bool]" = None,
        show_preview: "Union[None, bool]" = None,
        value_has_alias: "Union[None, bool]" = True,
        add_no_value_option: "Union[None, bool]" = False,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render an input widget that prompts the user for a value of type 'table'."""

    def select_tables(
        self,
        add_import_widget: "Union[str, None, bool]" = None,
        display_value_type: "Union[None, bool]" = None,
        show_preview: "Union[None, bool]" = None,
        value_has_alias: "Union[None, bool]" = True,
        add_no_value_option: "Union[None, bool]" = False,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render an input widget that prompts the user for a value of type 'tables'."""

    def select_value(
        self,
        value_schema: "ValueSchema",
        add_import_widget: "Union[str, None, bool]" = None,
        data_type: "Union[str, List[str], None]" = None,
        display_value_type: "Union[None, bool]" = None,
        show_preview: "Union[None, bool]" = None,
        value_has_alias: "Union[None, bool]" = True,
        add_no_value_option: "Union[None, bool]" = False,
        label: "Union[None, str]" = "-- no label --",
        help: "Union[None, str]" = "-- n/a --",
        smart_label: "Union[None, bool]" = True,
        display_style: "Union[None, str]" = "default",
        key: "Union[None, str]" = "-- generated --",
    ):
        """Render a selectbox with all available values (for a specific type, if applicable)."""

    def stage_outputs_preview(
        self,
        stage_idx: "List[int]",
        session: "WorkflowSessionStatic",
        key: "Union[None, str]" = "-- generated --",
    ):
        """-- n/a --"""

    def step_input_fields(
        self,
        step_id: "str",
        session: "WorkflowSessionDynamic",
        key: "Union[None, str]" = "-- generated --",
    ):
        """-- n/a --"""

    def step_requirements(self, key: "Union[None, str]" = "-- generated --"):
        """A component to gather step requirements from users"""

    def value_list(
        self,
        data_types: "Union[str, List[str], None]" = None,
        key: "Union[None, str]" = "-- generated --",
    ):
        """-- n/a --"""

    def value_list_preview(
        self,
        data_types: "Union[str, List[str], None]" = None,
        key: "Union[None, str]" = "-- generated --",
    ):
        """-- n/a --"""

    def value_map_preview(
        self,
        value_map: "Mapping[str, Union[str, uuid.UUID, kiara.models.values.value.Value]]",
        add_save_option: "Union[None, bool]" = False,
        add_value_types: "Union[None, bool]" = True,
        key: "Union[None, str]" = "-- generated --",
    ):
        """-- n/a --"""

    def workflow(
        self, session: "WorkflowSession", key: "Union[None, str]" = "-- generated --"
    ):
        """-- n/a --"""

    def workflow_dynamic(
        self,
        session: "WorkflowSessionDynamic",
        key: "Union[None, str]" = "-- generated --",
    ):
        """-- n/a --"""

    def workflow_static(
        self,
        session: "WorkflowSessionStatic",
        key: "Union[None, str]" = "-- generated --",
    ):
        """-- n/a --"""

    def write_step_details(
        self,
        step_id: "str",
        session: "WorkflowSessionDynamic",
        key: "Union[None, str]" = "-- generated --",
    ):
        """-- n/a --"""


class KiaraStreamlitAugmented(KiaraStreamlit, KiaraStreamlitComponents):
    """A dummy class to help IDEs with type hinting."""


class KiaraStreamlitAPIProtocol(Protocol):
    """A protocol class that contains all the dynamically discovered kiara-streamlit components."""

    @property
    def kiara(self) -> "KiaraStreamlitAugmented":
        """Returns the Kiara context used by the API."""


class KiaraStreamlitAPI(DeltaGenerator, KiaraStreamlitAPIProtocol):
    """A dummy class to help IDEs with type hinting."""
