

from typing import TYPE_CHECKING

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


_lowerCamelCase      :					Union[str, Any]					    =      {
    '''configuration_data2vec_audio''': ['''DATA2VEC_AUDIO_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''Data2VecAudioConfig'''],
    '''configuration_data2vec_text''': [
        '''DATA2VEC_TEXT_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''Data2VecTextConfig''',
        '''Data2VecTextOnnxConfig''',
    ],
    '''configuration_data2vec_vision''': [
        '''DATA2VEC_VISION_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''Data2VecVisionConfig''',
        '''Data2VecVisionOnnxConfig''',
    ],
}

try:
   if not is_torch_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   _lowerCamelCase      :					List[str]					    =      [
       '''DATA2VEC_AUDIO_PRETRAINED_MODEL_ARCHIVE_LIST''',
       '''Data2VecAudioForAudioFrameClassification''',
       '''Data2VecAudioForCTC''',
       '''Data2VecAudioForSequenceClassification''',
       '''Data2VecAudioForXVector''',
       '''Data2VecAudioModel''',
       '''Data2VecAudioPreTrainedModel''',
   ]
   _lowerCamelCase      :					List[str]					    =      [
       '''DATA2VEC_TEXT_PRETRAINED_MODEL_ARCHIVE_LIST''',
       '''Data2VecTextForCausalLM''',
       '''Data2VecTextForMaskedLM''',
       '''Data2VecTextForMultipleChoice''',
       '''Data2VecTextForQuestionAnswering''',
       '''Data2VecTextForSequenceClassification''',
       '''Data2VecTextForTokenClassification''',
       '''Data2VecTextModel''',
       '''Data2VecTextPreTrainedModel''',
   ]
   _lowerCamelCase      :					Union[str, Any]					    =      [
       '''DATA2VEC_VISION_PRETRAINED_MODEL_ARCHIVE_LIST''',
       '''Data2VecVisionForImageClassification''',
       '''Data2VecVisionForMaskedImageModeling''',
       '''Data2VecVisionForSemanticSegmentation''',
       '''Data2VecVisionModel''',
       '''Data2VecVisionPreTrainedModel''',
   ]

if is_tf_available():
   _lowerCamelCase      :					List[Any]					    =      [
       '''TFData2VecVisionForImageClassification''',
       '''TFData2VecVisionForSemanticSegmentation''',
       '''TFData2VecVisionModel''',
       '''TFData2VecVisionPreTrainedModel''',
   ]

if TYPE_CHECKING:
   from .configuration_dataavec_audio import DATA2VEC_AUDIO_PRETRAINED_CONFIG_ARCHIVE_MAP, DataaVecAudioConfig
   from .configuration_dataavec_text import (
       DATA2VEC_TEXT_PRETRAINED_CONFIG_ARCHIVE_MAP,
       DataaVecTextConfig,
       DataaVecTextOnnxConfig,
   )
   from .configuration_dataavec_vision import (
       DATA2VEC_VISION_PRETRAINED_CONFIG_ARCHIVE_MAP,
       DataaVecVisionConfig,
       DataaVecVisionOnnxConfig,
   )

   try:
      if not is_torch_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .modeling_dataavec_audio import (
          DATA2VEC_AUDIO_PRETRAINED_MODEL_ARCHIVE_LIST,
          DataaVecAudioForAudioFrameClassification,
          DataaVecAudioForCTC,
          DataaVecAudioForSequenceClassification,
          DataaVecAudioForXVector,
          DataaVecAudioModel,
          DataaVecAudioPreTrainedModel,
      )
      from .modeling_dataavec_text import (
          DATA2VEC_TEXT_PRETRAINED_MODEL_ARCHIVE_LIST,
          DataaVecTextForCausalLM,
          DataaVecTextForMaskedLM,
          DataaVecTextForMultipleChoice,
          DataaVecTextForQuestionAnswering,
          DataaVecTextForSequenceClassification,
          DataaVecTextForTokenClassification,
          DataaVecTextModel,
          DataaVecTextPreTrainedModel,
      )
      from .modeling_dataavec_vision import (
          DATA2VEC_VISION_PRETRAINED_MODEL_ARCHIVE_LIST,
          DataaVecVisionForImageClassification,
          DataaVecVisionForMaskedImageModeling,
          DataaVecVisionForSemanticSegmentation,
          DataaVecVisionModel,
          DataaVecVisionPreTrainedModel,
      )
   if is_tf_available():
      from .modeling_tf_dataavec_vision import (
          TFDataaVecVisionForImageClassification,
          TFDataaVecVisionForSemanticSegmentation,
          TFDataaVecVisionModel,
          TFDataaVecVisionPreTrainedModel,
      )

else:
   import sys

   _lowerCamelCase      :					Optional[Any]					    =      _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)





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


try:
   if not (is_transformers_available() and is_torch_available() and is_transformers_version('''>=''', '''4.25.0''')):
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   from ...utils.dummy_torch_and_transformers_objects import (
       VersatileDiffusionDualGuidedPipeline,
       VersatileDiffusionImageVariationPipeline,
       VersatileDiffusionPipeline,
       VersatileDiffusionTextToImagePipeline,
   )
else:
   from .modeling_text_unet import UNetFlatConditionModel
   from .pipeline_versatile_diffusion import VersatileDiffusionPipeline
   from .pipeline_versatile_diffusion_dual_guided import VersatileDiffusionDualGuidedPipeline
   from .pipeline_versatile_diffusion_image_variation import VersatileDiffusionImageVariationPipeline
   from .pipeline_versatile_diffusion_text_to_image import VersatileDiffusionTextToImagePipeline


