from . import settings as settings
from .types import LogAttrs as LogAttrs, LogType as LogType
from typing import Dict, Optional

log_levels_str_to_int: Dict[str, int]
default_log_level: int

class StructuredMessage:
    def __init__(self, message: str, *args: LogType, turn_json: Optional[bool] = None) -> None: ...
    def to_dict(self) -> Dict: ...
sm = StructuredMessage

class Typelog:
    def __init__(self, name: str, turn_json: Optional[bool]) -> None: ...
    def debug(self, message: str, *args: LogType) -> None: ...
    def info(self, message: str, *args: LogType) -> None: ...
    def warn(self, message: str, *args: LogType) -> None: ...
    def error(self, message: str, *args: LogType) -> None: ...
    def fatal(self, message: str, *args: LogType) -> None: ...
    def with_fields(self, *args: LogType) -> Typelog: ...

def get_logger(file: str, turn_json: Optional[bool] = None) -> Typelog: ...
