"""
Auto-generated Python stub file from lib.core.VLogger.py
Module: lib.core.VLogger
"""


import t, c
from stdint import *
import stdio
import memhub
import w32.win32console as w32cmd
import w32.win32file as w32file
import w32.win32base as w32base

class LogLevel(t.CEnum):
    DEBUG = 0
    INFO = 1
    WARNING = 2
    ERROR = 3
    SUCCESS = 4

FOREGROUND_BLUE: t.CDefine = 0x0001
FOREGROUND_GREEN: t.CDefine = 0x0002
FOREGROUND_RED: t.CDefine = 0x0004
FOREGROUND_INTENSITY: t.CDefine = 0x0008
FOREGROUND_WHITE: t.CDefine = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE
FOREGROUND_CYAN: t.CDefine = FOREGROUND_BLUE | FOREGROUND_GREEN
FOREGROUND_YELLOW: t.CDefine = FOREGROUND_RED | FOREGROUND_GREEN
FOREGROUND_MAGENTA: t.CDefine = FOREGROUND_RED | FOREGROUND_BLUE
BACKGROUND_RED: t.CDefine = 0x0040
BACKGROUND_GREEN: t.CDefine = 0x0020
BACKGROUND_BLUE: t.CDefine = 0x0010
BACKGROUND_INTENSITY: t.CDefine = 0x0080
BACKGROUND_WHITE: t.CDefine = BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE

class Logger:
    _level: int
    _console_handle: w32base.HANDLE
    _use_color: int
    __mbuddy__: memhub.MemManager | t.CPtr
    def __init__(self: Logger, level: int) -> t.CInt: pass
    def _set_color(self: Logger, attr: WORD) -> int: pass
    def _reset_color(self: Logger) -> int: pass
    def _log(self: Logger, level: int, prefix: str, msg: str, color: WORD, category: str) -> int: pass
    def debug(self: Logger, msg: str, category: str) -> int: pass
    def info(self: Logger, msg: str, category: str) -> int: pass
    def warning(self: Logger, msg: str, category: str) -> int: pass
    def error(self: Logger, msg: str, category: str) -> int: pass
    def success(self: Logger, msg: str, category: str) -> int: pass
    def set_level(self: Logger, level: int) -> int: pass
    def banner(self: Logger, msg: str) -> int: pass
    def compile_error(self: Logger, msg: str, file: str, line: int) -> int: pass
    def compile_warning(self: Logger, msg: str, file: str, line: int) -> int: pass

_mbuddy: t.CExtern | memhub.MemManager | t.CPtr
_g_logger: t.CExtern | Logger | t.CPtr

def get_logger() -> Logger | t.CPtr: pass

def set_logger(logger: Logger | t.CPtr) -> int: pass
