from typing import Callable
from enum import Enum, Flag

from mdk.types.builtins import BoolType as BoolType, FloatType as FloatType, IntType as IntType, StringType as StringType, StateNoType as StateNoType
from mdk.types.context import CompilerContext as CompilerContext, StateController
from mdk.types.defined import TupleType as TupleType
from mdk.types.errors import CompilationException as CompilationException
from mdk.types.expressions import Expression as Expression, TupleExpression as TupleExpression

def convert(input: Expression | str | int | float | bool | tuple | Callable[..., StateController] | Enum | Flag) -> Expression: ...
def generate_random_string(length: int): ...
def format_tuple(t: tuple) -> TupleExpression: ...
def convert_tuple(t: tuple, t2: TupleType) -> Expression: ...
def format_bool(b: bool) -> Expression: ...
def create_compiler_error(exc: CompilationException): ...
