from __future__ import annotations
from ._primitive_type import _PrimitiveType

class _BooleanLiteral:
    def __bool__(self) -> bool: ...
    def __await__(self): ...

class _Boolean(_PrimitiveType):
    @property
    def type(self):
        return _Boolean

    def copy(self) -> _Boolean: ...
    def __bool__(self) -> bool: ...
    def __await__(self): ...

true = _BooleanLiteral(True)
false = _BooleanLiteral(False)
boolean = _Boolean

class _NullFullType:
    pass

class _MetaNull(type):
    def __inv__(self) -> Full: ...
    def __invert__(self) -> Full: ...

class _MetaFull(type):
    def __inv__(self) -> Null: ...
    def __invert__(self) -> Null: ...

class Null(_NullFullType, metaclass=_MetaNull): ...
class Full(_NullFullType, metaclass=_MetaFull): ...
