"""
Auto-generated Python stub file from main.py
Module: main
"""

import c


import t
from stdio import printf
import testcheck

def log(ctx: t.CVoid | t.CPtr, func_name: str, phase: t.CInt, args_ptr: t.CVoid | t.CPtr, ret_ptr: t.CVoid | t.CPtr, decor_args_ptr: t.CVoid | t.CPtr) -> t.CInt | t.CExport: pass

def trace(ctx: t.CVoid | t.CPtr, func_name: str, phase: t.CInt, args_ptr: t.CVoid | t.CPtr, ret_ptr: t.CVoid | t.CPtr, decor_args_ptr: t.CVoid | t.CPtr) -> t.CInt | t.CExport: pass


_timing_tmp: t.CExtern | t.CInt

def timing(ctx: t.CVoid | t.CPtr, func_name: str, phase: t.CInt, args_ptr: t.CVoid | t.CPtr, ret_ptr: t.CVoid | t.CPtr, decor_args_ptr: t.CVoid | t.CPtr) -> t.CInt | t.CExport: pass

def repeat(ctx: t.CVoid | t.CPtr, func_name: str, phase: t.CInt, args_ptr: t.CVoid | t.CPtr, ret_ptr: t.CVoid | t.CPtr, decor_args_ptr: t.CVoid | t.CPtr) -> t.CInt | t.CExport: pass


_skip_count: t.CExtern | t.CInt

def skip(ctx: t.CVoid | t.CPtr, func_name: str, phase: t.CInt, args_ptr: t.CVoid | t.CPtr, ret_ptr: t.CVoid | t.CPtr, decor_args_ptr: t.CVoid | t.CPtr) -> t.CInt | t.CExport: pass


_call_count: t.CExtern | t.CInt

def count_calls(ctx: t.CVoid | t.CPtr, func_name: str, phase: t.CInt, args_ptr: t.CVoid | t.CPtr, ret_ptr: t.CVoid | t.CPtr, decor_args_ptr: t.CVoid | t.CPtr) -> t.CInt | t.CExport: pass

@log
def add(a: t.CInt, b: t.CInt) -> t.CInt | t.CExport: pass

@log
@trace
def multiply(a: t.CInt, b: t.CInt) -> t.CInt | t.CExport: pass

@log
def greet(name: str) -> t.CVoid | t.CExport: pass

@log
def get_value() -> t.CInt | t.CExport: pass

@timing
def compute(x: t.CInt) -> t.CInt | t.CExport: pass

@repeat(3)
def echo(msg: str) -> t.CVoid | t.CExport: pass

@timing
@log
def power(base: t.CInt, exp: t.CInt) -> t.CInt | t.CExport: pass

@skip
def dangerous() -> t.CInt | t.CExport: pass

@repeat(3)
def accumulate(x: t.CInt) -> t.CInt | t.CExport: pass

@count_calls
def factorial(n: t.CInt) -> t.CInt | t.CExport: pass

@log
def fib(n: t.CInt) -> t.CInt | t.CExport: pass

def main() -> t.CInt | t.CExport: pass
