from __future__ import annotations

from typing import Any, Optional

class ProgramDeps:
    def __init__(self, block: Any, start_vars: Any, end_vars: Any) -> None: ...
    def get_sub_block_deps(self, idx: Any): ...
    def get_var_deps(self, var_name: Any): ...
    def crop_input_var_from_op(self, op_idx: Any, var_name: Any) -> None: ...
    def crop_output_var_from_op(self, op_idx: Any, var_name: Any) -> None: ...
    def remove_op(self, op_idx: Any, reserved_vars: Optional[Any] = ...) -> None: ...
    def should_remove_op(self, op_idx: Any): ...
