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


import t, c
from stdint import *
import string
import memhub
import stdio
import hashtable

STRING: t.CDefine = 0
INT: t.CDefine = 1
BOOL: t.CDefine = 2
STORE: t.CDefine = 0
STORE_TRUE: t.CDefine = 1
STORE_FALSE: t.CDefine = 2
COUNT: t.CDefine = 3
MAX_ARGS: t.CDefine = 32
_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr

class Argument:
    name: str
    short_name: str
    help_text: str
    arg_type: INT
    action: INT
    default_int: INT
    default_str: str
    required: bool
    is_positional: bool
    dest: str
class ParsedArgs:
    _ht: hashtable.HashTable | t.CPtr
    __mbuddy__: memhub.MemBuddy | t.CPtr
    def __new__(self: ParsedArgs, mb: memhub.MemBuddy | t.CPtr) -> t.CPtr: pass
    def __init__(self: ParsedArgs, mb: memhub.MemBuddy | t.CPtr) -> t.CInt: pass
    def get_str(self: ParsedArgs, name: str) -> str: pass
    def get_int(self: ParsedArgs, name: str) -> INT: pass
    def get_bool(self: ParsedArgs, name: str) -> INT: pass
    def has(self: ParsedArgs, name: str) -> bool: pass
    def _set_str(self: ParsedArgs, name: str, val: str) -> t.CInt: pass
    def _set_int(self: ParsedArgs, name: str, val: INT) -> t.CInt: pass
    def _set_bool(self: ParsedArgs, name: str, val: bool) -> t.CInt: pass
class ArgumentParser:
    _prog: str
    _description: str
    _args: Argument | t.CPtr
    _arg_count: INT
    __mbuddy__: memhub.MemBuddy | t.CPtr
    def __new__(self: ArgumentParser, prog: str, description: str, pool: memhub.MemBuddy | t.CPtr) -> t.CPtr: pass
    def __init__(self: ArgumentParser, prog: str, description: str, pool: memhub.MemBuddy | t.CPtr) -> t.CInt: pass
    def add_argument(self: ArgumentParser, name: str, short: str, arg_type: INT, default: INT, default_str: str, required: bool, action: INT, help: str) -> t.CInt: pass
    def _get_arg(self: ArgumentParser, idx: INT) -> Argument | t.CPtr: pass
    def _find_long(self: ArgumentParser, token: str) -> INT: pass
    def _find_long_prefix(self: ArgumentParser, token: str) -> INT: pass
    def _find_short(self: ArgumentParser, token: str) -> INT: pass
    def _find_positional(self: ArgumentParser, pos_idx: INT) -> INT: pass
    def _store_value(self: ArgumentParser, args: ParsedArgs | t.CPtr, arg: Argument | t.CPtr, value: str) -> t.CInt: pass
    def _apply_action(self: ArgumentParser, args: ParsedArgs | t.CPtr, arg: Argument | t.CPtr) -> t.CInt: pass
    def parse_args(self: ArgumentParser, argc: INT, argv: str | t.CPtr) -> ParsedArgs | t.CPtr: pass
    def print_help(self: ArgumentParser) -> t.CInt: pass
    def print_usage(self: ArgumentParser) -> t.CInt: pass

def release(args: ParsedArgs | t.CPtr) -> t.CInt: pass
