"""pybind11 omni.kit.usd.layers bindings"""
import omni.kit.usd.layers._omni_kit_usd_layers
import typing
import carb.dictionary._dictionary
import carb.events._events

__all__ = [
    "ILayers",
    "ILayersInstance",
    "ILayersState",
    "IWorkflowAutoAuthoring",
    "IWorkflowLiveSyncing",
    "IWorkflowSpecsLinking",
    "IWorkflowSpecsLocking",
    "LayerEditMode",
    "LayerEventType",
    "LiveSessionHandle",
    "acquire_auto_authoring_interface",
    "acquire_layers_interface",
    "acquire_layers_state_interface",
    "acquire_live_syncing_interface",
    "acquire_specs_linking_interface",
    "acquire_specs_locking_interface",
    "release_auto_authoring_interface",
    "release_layers_interface",
    "release_layers_state_interface",
    "release_live_syncing_interface",
    "release_specs_linking_interface",
    "release_specs_locking_interface"
]


class ILayers():
    def get_layers_instance_by_context(self, arg0: capsule) -> ILayersInstance: ...
    def get_layers_instance_by_name(self, arg0: str) -> ILayersInstance: ...
    pass
class ILayersInstance():
    @staticmethod
    def get_edit_mode(*args, **kwargs) -> typing.Any: ...
    def get_event_stream(self) -> carb.events._events.IEventStream: ...
    @staticmethod
    def set_edit_mode(*args, **kwargs) -> typing.Any: ...
    pass
class ILayersState():
    def get_dirty_layer_identifiers(self, arg0: ILayersInstance) -> carb.dictionary._dictionary.Item: ...
    def get_layer_name(self, arg0: ILayersInstance, arg1: str) -> str: ...
    def get_local_layer_identifiers(self, arg0: ILayersInstance, arg1: bool, arg2: bool, arg3: bool) -> carb.dictionary._dictionary.Item: ...
    def is_layer_globally_muted(self, arg0: ILayersInstance, arg1: str) -> bool: ...
    def is_layer_locally_muted(self, arg0: ILayersInstance, arg1: str) -> bool: ...
    def is_layer_locked(self, arg0: ILayersInstance, arg1: str) -> bool: ...
    def is_layer_outdated(self, arg0: ILayersInstance, arg1: str) -> bool: ...
    def is_layer_readonly_on_disk(self, arg0: ILayersInstance, arg1: str) -> bool: ...
    def is_layer_savable(self, arg0: ILayersInstance, arg1: str) -> bool: ...
    def is_layer_writable(self, arg0: ILayersInstance, arg1: str) -> bool: ...
    def is_muteness_global(self, arg0: ILayersInstance) -> bool: ...
    def set_layer_lock_state(self, arg0: ILayersInstance, arg1: str, arg2: bool) -> None: ...
    def set_layer_name(self, arg0: ILayersInstance, arg1: str, arg2: str) -> None: ...
    def set_muteness_scope(self, arg0: ILayersInstance, arg1: bool) -> None: ...
    pass
class IWorkflowAutoAuthoring():
    def get_default_layer(self, arg0: ILayersInstance) -> str: ...
    def is_auto_authoring_layer(self, arg0: ILayersInstance, arg1: str) -> bool: ...
    def is_enabled(self, arg0: ILayersInstance) -> bool: ...
    def set_default_layer(self, arg0: ILayersInstance, arg1: str) -> None: ...
    pass
class IWorkflowLiveSyncing():
    def create_live_session(self, arg0: ILayersInstance, arg1: str, arg2: str) -> LiveSessionHandle: ...
    def get_current_live_session(self, arg0: ILayersInstance, arg1: str) -> LiveSessionHandle: ...
    def get_live_session_at_index(self, arg0: ILayersInstance, arg1: str, arg2: int) -> LiveSessionHandle: ...
    def get_live_session_base_layer_identifier(self, arg0: ILayersInstance, arg1: LiveSessionHandle) -> str: ...
    def get_live_session_by_url(self, arg0: ILayersInstance, arg1: str) -> LiveSessionHandle: ...
    def get_live_session_channel_url(self, arg0: ILayersInstance, arg1: LiveSessionHandle) -> str: ...
    def get_live_session_for_live_layer(self, arg0: ILayersInstance, arg1: str) -> LiveSessionHandle: ...
    def get_live_session_name(self, arg0: ILayersInstance, arg1: LiveSessionHandle) -> str: ...
    def get_live_session_owner(self, arg0: ILayersInstance, arg1: LiveSessionHandle) -> str: ...
    def get_live_session_root_identifier(self, arg0: ILayersInstance, arg1: LiveSessionHandle) -> str: ...
    def get_live_session_url(self, arg0: ILayersInstance, arg1: LiveSessionHandle) -> str: ...
    def get_logged_in_user_id_for_layer(self, arg0: ILayersInstance, arg1: str) -> str: ...
    def get_logged_in_user_name_for_layer(self, arg0: ILayersInstance, arg1: str) -> str: ...
    def get_total_live_sessions(self, arg0: ILayersInstance, arg1: str) -> int: ...
    def is_layer_in_live_session(self, arg0: ILayersInstance, arg1: str) -> bool: ...
    def is_live_session_layer(self, arg0: ILayersInstance, arg1: str) -> bool: ...
    def is_stage_in_live_session(self, arg0: ILayersInstance) -> bool: ...
    def is_valid_live_session(self, arg0: ILayersInstance, arg1: LiveSessionHandle) -> bool: ...
    def join_live_session(self, arg0: ILayersInstance, arg1: LiveSessionHandle) -> bool: ...
    def join_live_session_by_url(self, arg0: ILayersInstance, arg1: str, arg2: str, arg3: bool) -> bool: ...
    def merge_live_session_changes(self, arg0: ILayersInstance, arg1: str, arg2: bool) -> bool: ...
    def merge_live_session_changes_to_specific_layer(self, arg0: ILayersInstance, arg1: str, arg2: str, arg3: bool, arg4: bool) -> bool: ...
    def permission_to_merge_session_changes(self, arg0: ILayersInstance, arg1: LiveSessionHandle) -> bool: ...
    def stop_all_live_sessions(self, arg0: ILayersInstance) -> None: ...
    def stop_live_session(self, arg0: ILayersInstance, arg1: str) -> None: ...
    pass
class IWorkflowSpecsLinking():
    def get_all_spec_links(self, arg0: ILayersInstance) -> carb.dictionary._dictionary.Item: ...
    def get_spec_layer_links(self, arg0: ILayersInstance, arg1: str, arg2: bool) -> carb.dictionary._dictionary.Item: ...
    def get_spec_links_for_layer(self, arg0: ILayersInstance, arg1: str) -> carb.dictionary._dictionary.Item: ...
    def is_enabled(self, arg0: ILayersInstance) -> bool: ...
    def is_spec_linked(self, arg0: ILayersInstance, arg1: str, arg2: str) -> bool: ...
    def link_spec(self, arg0: ILayersInstance, arg1: str, arg2: str, arg3: bool) -> carb.dictionary._dictionary.Item: ...
    def unlink_all_specs(self, arg0: ILayersInstance) -> None: ...
    def unlink_spec(self, arg0: ILayersInstance, arg1: str, arg2: str, arg3: bool) -> carb.dictionary._dictionary.Item: ...
    def unlink_spec_from_all_layers(self, arg0: ILayersInstance, arg1: str, arg2: bool) -> carb.dictionary._dictionary.Item: ...
    def unlink_specs_to_layer(self, arg0: ILayersInstance, arg1: str) -> carb.dictionary._dictionary.Item: ...
    pass
class IWorkflowSpecsLocking():
    def get_all_locked_specs(self, arg0: ILayersInstance) -> carb.dictionary._dictionary.Item: ...
    def is_spec_locked(self, arg0: ILayersInstance, arg1: str) -> bool: ...
    def lock_spec(self, arg0: ILayersInstance, arg1: str, arg2: bool) -> carb.dictionary._dictionary.Item: ...
    def unlock_all_specs(self, arg0: ILayersInstance) -> None: ...
    def unlock_spec(self, arg0: ILayersInstance, arg1: str, arg2: bool) -> carb.dictionary._dictionary.Item: ...
    pass
class LayerEditMode():
    """
    Layer edit mode.

    Members:

      NORMAL

      AUTO_AUTHORING

      SPECS_LINKING
    """
    def __init__(self, arg0: int) -> None: ...
    def __int__(self) -> int: ...
    @property
    def name(self) -> str:
        """
        (self: handle) -> str

        :type: str
        """
    AUTO_AUTHORING: omni.kit.usd.layers._omni_kit_usd_layers.LayerEditMode # value = LayerEditMode.AUTO_AUTHORING
    NORMAL: omni.kit.usd.layers._omni_kit_usd_layers.LayerEditMode # value = LayerEditMode.NORMAL
    SPECS_LINKING: omni.kit.usd.layers._omni_kit_usd_layers.LayerEditMode # value = LayerEditMode.SPECS_LINKING
    __members__: dict # value = {'NORMAL': LayerEditMode.NORMAL, 'AUTO_AUTHORING': LayerEditMode.AUTO_AUTHORING, 'SPECS_LINKING': LayerEditMode.SPECS_LINKING}
    pass
class LayerEventType():
    """
    Layer operation results.

    Members:

      INFO_CHANGED

      DIRTY_STATE_CHANGED

      LOCK_STATE_CHANGED

      MUTENESS_SCOPE_CHANGED

      MUTENESS_STATE_CHANGED

      OUTDATE_STATE_CHANGED

      PRIM_SPECS_CHANGED

      SUBLAYERS_CHANGED

      EDIT_TARGET_CHANGED

      SPECS_LOCKING_CHANGED

      SPECS_LINKING_CHANGED

      EDIT_MODE_CHANGED

      DEFAULT_LAYER_CHANGED

      LIVE_SESSION_STATE_CHANGED

      LIVE_SESSION_LIST_CHANGED

      LIVE_SESSION_USER_JOINED

      LIVE_SESSION_USER_LEFT

      LIVE_SESSION_MERGE_STARTED

      LIVE_SESSION_MERGE_ENDED
    """
    def __init__(self, arg0: int) -> None: ...
    def __int__(self) -> int: ...
    @property
    def name(self) -> str:
        """
        (self: handle) -> str

        :type: str
        """
    DEFAULT_LAYER_CHANGED: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.DEFAULT_LAYER_CHANGED
    DIRTY_STATE_CHANGED: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.DIRTY_STATE_CHANGED
    EDIT_MODE_CHANGED: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.EDIT_MODE_CHANGED
    EDIT_TARGET_CHANGED: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.EDIT_TARGET_CHANGED
    INFO_CHANGED: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.INFO_CHANGED
    LIVE_SESSION_LIST_CHANGED: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.LIVE_SESSION_LIST_CHANGED
    LIVE_SESSION_MERGE_ENDED: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.LIVE_SESSION_MERGE_ENDED
    LIVE_SESSION_MERGE_STARTED: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.LIVE_SESSION_MERGE_STARTED
    LIVE_SESSION_STATE_CHANGED: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.LIVE_SESSION_STATE_CHANGED
    LIVE_SESSION_USER_JOINED: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.LIVE_SESSION_USER_JOINED
    LIVE_SESSION_USER_LEFT: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.LIVE_SESSION_USER_LEFT
    LOCK_STATE_CHANGED: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.LOCK_STATE_CHANGED
    MUTENESS_SCOPE_CHANGED: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.MUTENESS_SCOPE_CHANGED
    MUTENESS_STATE_CHANGED: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.MUTENESS_STATE_CHANGED
    OUTDATE_STATE_CHANGED: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.OUTDATE_STATE_CHANGED
    PRIM_SPECS_CHANGED: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.PRIM_SPECS_CHANGED
    SPECS_LINKING_CHANGED: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.SPECS_LINKING_CHANGED
    SPECS_LOCKING_CHANGED: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.SPECS_LOCKING_CHANGED
    SUBLAYERS_CHANGED: omni.kit.usd.layers._omni_kit_usd_layers.LayerEventType # value = LayerEventType.SUBLAYERS_CHANGED
    __members__: dict # value = {'INFO_CHANGED': LayerEventType.INFO_CHANGED, 'DIRTY_STATE_CHANGED': LayerEventType.DIRTY_STATE_CHANGED, 'LOCK_STATE_CHANGED': LayerEventType.LOCK_STATE_CHANGED, 'MUTENESS_SCOPE_CHANGED': LayerEventType.MUTENESS_SCOPE_CHANGED, 'MUTENESS_STATE_CHANGED': LayerEventType.MUTENESS_STATE_CHANGED, 'OUTDATE_STATE_CHANGED': LayerEventType.OUTDATE_STATE_CHANGED, 'PRIM_SPECS_CHANGED': LayerEventType.PRIM_SPECS_CHANGED, 'SUBLAYERS_CHANGED': LayerEventType.SUBLAYERS_CHANGED, 'EDIT_TARGET_CHANGED': LayerEventType.EDIT_TARGET_CHANGED, 'SPECS_LOCKING_CHANGED': LayerEventType.SPECS_LOCKING_CHANGED, 'SPECS_LINKING_CHANGED': LayerEventType.SPECS_LINKING_CHANGED, 'EDIT_MODE_CHANGED': LayerEventType.EDIT_MODE_CHANGED, 'DEFAULT_LAYER_CHANGED': LayerEventType.DEFAULT_LAYER_CHANGED, 'LIVE_SESSION_STATE_CHANGED': LayerEventType.LIVE_SESSION_STATE_CHANGED, 'LIVE_SESSION_LIST_CHANGED': LayerEventType.LIVE_SESSION_LIST_CHANGED, 'LIVE_SESSION_USER_JOINED': LayerEventType.LIVE_SESSION_USER_JOINED, 'LIVE_SESSION_USER_LEFT': LayerEventType.LIVE_SESSION_USER_LEFT, 'LIVE_SESSION_MERGE_STARTED': LayerEventType.LIVE_SESSION_MERGE_STARTED, 'LIVE_SESSION_MERGE_ENDED': LayerEventType.LIVE_SESSION_MERGE_ENDED}
    pass
class LiveSessionHandle():
    pass
def acquire_auto_authoring_interface(plugin_name: str = None, library_path: str = None) -> IWorkflowAutoAuthoring:
    pass
def acquire_layers_interface(plugin_name: str = None, library_path: str = None) -> ILayers:
    pass
def acquire_layers_state_interface(plugin_name: str = None, library_path: str = None) -> ILayersState:
    pass
def acquire_live_syncing_interface(plugin_name: str = None, library_path: str = None) -> IWorkflowLiveSyncing:
    pass
def acquire_specs_linking_interface(plugin_name: str = None, library_path: str = None) -> IWorkflowSpecsLinking:
    pass
def acquire_specs_locking_interface(plugin_name: str = None, library_path: str = None) -> IWorkflowSpecsLocking:
    pass
def release_auto_authoring_interface(arg0: IWorkflowAutoAuthoring) -> None:
    pass
def release_layers_interface(arg0: ILayers) -> None:
    pass
def release_layers_state_interface(arg0: ILayersState) -> None:
    pass
def release_live_syncing_interface(arg0: IWorkflowLiveSyncing) -> None:
    pass
def release_specs_linking_interface(arg0: IWorkflowSpecsLinking) -> None:
    pass
def release_specs_locking_interface(arg0: IWorkflowSpecsLocking) -> None:
    pass
