import ast
import io
from mdk.types.context import StateController as StateController, StateScope as StateScope, TranslationMode as TranslationMode
from mdk.utils.shared import format_bool as format_bool
from mdk.utils.triggers import TriggerAnd as TriggerAnd, TriggerAssign as TriggerAssign, TriggerNot as TriggerNot, TriggerOr as TriggerOr, TriggerPop as TriggerPop, TriggerPush as TriggerPush
from typing import Callable

def write_controller(ctrl: StateController, f: io.TextIOWrapper, locations: bool): ...
def rewrite_function(fn: Callable[..., None], overload_print: bool = True, mode: TranslationMode = TranslationMode.STANDARD) -> Callable[..., None]: ...

class ReplaceLogicalOperators(ast.NodeTransformer):
    location: str
    line: int
    def __init__(self) -> None: ...
    def visit_BoolOp(self, node: ast.BoolOp): ...
    def visit_UnaryOp(self, node: ast.UnaryOp): ...
    def visit_NamedExpr(self, node: ast.NamedExpr): ...
    def visit_If(self, node: ast.If): ...
