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

import c


import t
from stdint import *
from stdio import printf
from stdlib import malloc
import testcheck

class Rect:
    width: t.CInt
    height: t.CInt
    def __new__(self: Rect, w: t.CInt, h: t.CInt) -> 'Rect' | t.CPtr: pass
    def __init__(self: Rect, w: t.CInt, h: t.CInt) -> t.CInt: pass
    @property
    def area(self: Rect) -> t.CInt: pass
    @property
    def is_square(self: Rect) -> bool: pass

def test_property_getter() -> t.CInt: pass


class Temperature:
    _celsius: t.CDouble
    def __new__(self: Temperature, celsius_val: t.CDouble) -> 'Temperature' | t.CPtr: pass
    def __init__(self: Temperature, celsius_val: t.CDouble) -> t.CInt: pass
    @property
    def celsius(self: Temperature) -> t.CDouble: pass
    @celsius.setter
    def celsius(self: Temperature, val: t.CDouble) -> t.CInt: pass
    @property
    def fahrenheit(self: Temperature) -> t.CDouble: pass

def test_property_setter() -> t.CInt: pass


class Counter:
    _count: t.CInt
    def __new__(self: Counter) -> 'Counter' | t.CPtr: pass
    def __init__(self: Counter) -> t.CInt: pass
    @property
    def value(self: Counter) -> t.CInt: pass
    @value.setter
    def value(self: Counter, v: t.CInt) -> t.CInt: pass

def test_property_getter_redef() -> t.CInt: pass


class Config:
    _value: t.CInt
    _deleted: t.CInt
    def __new__(self: Config, v: t.CInt) -> 'Config' | t.CPtr: pass
    def __init__(self: Config, v: t.CInt) -> t.CInt: pass
    @property
    def value(self: Config) -> t.CInt: pass
    @value.setter
    def value(self: Config, v: t.CInt) -> t.CInt: pass
    @value.deleter
    def value(self: Config) -> t.CInt: pass
    def is_deleted(self: Config) -> bool: pass

def test_property_deleter() -> t.CInt: pass


class MathUtils:
    @staticmethod
    def add(a: t.CInt, b: t.CInt) -> t.CInt: pass
    @staticmethod
    def max_val(a: t.CInt, b: t.CInt) -> t.CInt: pass

def test_staticmethod() -> t.CInt: pass


class Point:
    x: t.CDouble
    y: t.CDouble
    def __new__(self: Point, x: t.CDouble, y: t.CDouble) -> 'Point' | t.CPtr: pass
    def __init__(self: Point, x: t.CDouble, y: t.CDouble) -> t.CInt: pass
    @classmethod
    def origin(cls: Point) -> Point: pass
    @classmethod
    def from_int(cls: Point, x: t.CInt, y: t.CInt) -> Point: pass
    def dist_sq(self: Point) -> t.CDouble: pass

def test_classmethod() -> t.CInt: pass


class Circle:
    _radius: t.CDouble
    def __new__(self: Circle, r: t.CDouble) -> 'Circle' | t.CPtr: pass
    def __init__(self: Circle, r: t.CDouble) -> t.CInt: pass
    @property
    def radius(self: Circle) -> t.CDouble: pass
    @radius.setter
    def radius(self: Circle, val: t.CDouble) -> t.CInt: pass
    @property
    def area(self: Circle) -> t.CDouble: pass
    @staticmethod
    def is_unit(r: t.CDouble) -> bool: pass
    @classmethod
    def unit(cls: Circle) -> Circle: pass

def test_combined() -> t.CInt: pass

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