from __future__ import annotations

from typing import Any, Optional

from paddle.static import program_guard as program_guard

class VarWrapper:
    def __init__(self, var: Any, graph: Any) -> None: ...
    def name(self): ...
    def shape(self): ...

class OpWrapper:
    def __init__(self, op: Any, graph: Any) -> None: ...
    def type(self): ...
    def inputs(self, name: Any): ...
    def outputs(self, name: Any): ...

class GraphWrapper:
    program: Any = ...
    persistables: Any = ...
    teacher_persistables: Any = ...
    compiled_graph: Any = ...
    in_nodes: Any = ...
    out_nodes: Any = ...
    def __init__(self, program: Optional[Any] = ..., in_nodes: Any = ..., out_nodes: Any = ...) -> None: ...
    def ops(self): ...
    def var(self, name: Any): ...

def count_convNd(op: Any): ...
def count_leaky_relu(op: Any): ...
def count_bn(op: Any): ...
def count_linear(op: Any): ...
def count_pool2d(op: Any): ...
def count_element_op(op: Any): ...
def static_flops(program: Any, print_detail: bool = ...): ...

class Table:
    table_heads: Any = ...
    table_len: Any = ...
    data: Any = ...
    col_num: Any = ...
    def __init__(self, table_heads: Any) -> None: ...
    def add_row(self, row_str: Any) -> None: ...
    def print_row(self, row: Any) -> None: ...
    def print_shelf(self) -> None: ...
    def print_table(self) -> None: ...
