
from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available, is_vision_available


A		: List[Any]								=     {
    '''configuration_bridgetower''': [
        '''BRIDGETOWER_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''BridgeTowerConfig''',
        '''BridgeTowerTextConfig''',
        '''BridgeTowerVisionConfig''',
    ],
    '''processing_bridgetower''': ['''BridgeTowerProcessor'''],
}

try:
		if not is_vision_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		A		: Optional[Any]								=     ['''BridgeTowerImageProcessor''']

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		A		: Any								=     [
		    '''BRIDGETOWER_PRETRAINED_MODEL_ARCHIVE_LIST''',
		    '''BridgeTowerForContrastiveLearning''',
		    '''BridgeTowerForImageAndTextRetrieval''',
		    '''BridgeTowerForMaskedLM''',
		    '''BridgeTowerModel''',
		    '''BridgeTowerPreTrainedModel''',
		]


if TYPE_CHECKING:
		from .configuration_bridgetower import (
		    BRIDGETOWER_PRETRAINED_CONFIG_ARCHIVE_MAP,
		    BridgeTowerConfig,
		    BridgeTowerTextConfig,
		    BridgeTowerVisionConfig,
		)
		from .processing_bridgetower import BridgeTowerProcessor

		try:
				if not is_vision_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .image_processing_bridgetower import BridgeTowerImageProcessor

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_bridgetower import (
				    BRIDGETOWER_PRETRAINED_MODEL_ARCHIVE_LIST,
				    BridgeTowerForContrastiveLearning,
				    BridgeTowerForImageAndTextRetrieval,
				    BridgeTowerForMaskedLM,
				    BridgeTowerModel,
				    BridgeTowerPreTrainedModel,
				)


else:
		import sys

		A		: Dict								=     _LazyModule(__name__, globals()['''__file__'''], _import_structure)

from ...utils import (
    OptionalDependencyNotAvailable,
    is_torch_available,
    is_transformers_available,
    is_transformers_version,
)


try:
		if not (is_transformers_available() and is_torch_available()):
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		from ...utils.dummy_torch_and_transformers_objects import ShapEPipeline
else:
		from .camera import create_pan_cameras
		from .pipeline_shap_e import ShapEPipeline
		from .pipeline_shap_e_img2img import ShapEImgaImgPipeline
		from .renderer import (
		    BoundingBoxVolume,
		    ImportanceRaySampler,
		    MLPNeRFModelOutput,
		    MLPNeRSTFModel,
		    ShapEParamsProjModel,
		    ShapERenderer,
		    StratifiedRaySampler,
		    VoidNeRFModel,
		)