from __future__ import annotations
import omni.usd_resolver._omni_usd_resolver
import typing
import omni.usd_resolver

__all__ = [
    "Event",
    "EventState",
    "Subscription",
    "get_version",
    "register_event_callback",
    "set_checkpoint_message",
    "set_mdl_builtins"
]


class Event():
    """
    Members:

      RESOLVING

      READING

      WRITING
    """
    def __eq__(self, other: object) -> bool: ...
    def __getstate__(self) -> int: ...
    def __hash__(self) -> int: ...
    def __index__(self) -> int: ...
    def __init__(self, value: int) -> None: ...
    def __int__(self) -> int: ...
    def __ne__(self, other: object) -> bool: ...
    def __repr__(self) -> str: ...
    def __setstate__(self, state: int) -> None: ...
    @property
    def name(self) -> str:
        """
        :type: str
        """
    @property
    def value(self) -> int:
        """
        :type: int
        """
    READING: omni.usd_resolver.Event # value = <Event.READING: 1>
    RESOLVING: omni.usd_resolver.Event # value = <Event.RESOLVING: 0>
    WRITING: omni.usd_resolver.Event # value = <Event.WRITING: 2>
    __members__: dict # value = {'RESOLVING': <Event.RESOLVING: 0>, 'READING': <Event.READING: 1>, 'WRITING': <Event.WRITING: 2>}
    pass
class EventState():
    """
    Members:

      STARTED

      SUCCESS

      FAILURE
    """
    def __eq__(self, other: object) -> bool: ...
    def __getstate__(self) -> int: ...
    def __hash__(self) -> int: ...
    def __index__(self) -> int: ...
    def __init__(self, value: int) -> None: ...
    def __int__(self) -> int: ...
    def __ne__(self, other: object) -> bool: ...
    def __repr__(self) -> str: ...
    def __setstate__(self, state: int) -> None: ...
    @property
    def name(self) -> str:
        """
        :type: str
        """
    @property
    def value(self) -> int:
        """
        :type: int
        """
    FAILURE: omni.usd_resolver.EventState # value = <EventState.FAILURE: 2>
    STARTED: omni.usd_resolver.EventState # value = <EventState.STARTED: 0>
    SUCCESS: omni.usd_resolver.EventState # value = <EventState.SUCCESS: 1>
    __members__: dict # value = {'STARTED': <EventState.STARTED: 0>, 'SUCCESS': <EventState.SUCCESS: 1>, 'FAILURE': <EventState.FAILURE: 2>}
    pass
class Subscription():
    def __enter__(self) -> _omni_usd_resolver.Subscription: ...
    def __exit__(self, arg0: object, arg1: object, arg2: object) -> None: ...
    def unregister(self) -> None: ...
    pass
def get_version() -> str:
    """
    Get the version of USD Resolver being used.

    Returns:
        Returns a human readable version string.
    """
def register_event_callback(callback: typing.Callable[[str, omni.usd_resolver.Event, omni.usd_resolver.EventState, int], None]) -> omni.usd_resolver.Subscription:
    """
    Register a function that will be called any time something interesting happens.

    Args:
        callback: Callback to be called with the event.

    Returns:
        Subscription Object. Callback will be unregistered once subcription is released.
    """
def set_checkpoint_message(message: str) -> None:
    """
    Set the message to be used for atomic checkpoints created when saving files.
              
              Args:
                  message (str): Checkpoint message.
    """
def set_mdl_builtins(arg0: typing.List[str]) -> None:
    """
    Set a list of built-in MDLs.

    Resolving an MDL in this list will return immediately rather than performing a full resolution.
    """
