o
    i                     @  sj   d dl mZ d dlZd dlmZmZ d dlmZmZ G dd deZ	e
eed f ZG dd dee	ZdS )	    )annotationsN)ABCabstractmethod)ClassVarProtocolc                   @  s   e Zd ZU ded< dS )_RunnerMetazClassVar[str]INFERENCE_METHODN)__name__
__module____qualname____annotations__ r   r   a/var/www/html/livekit_bhavya/venv/lib/python3.10/site-packages/livekit/agents/inference_runner.pyr      s   
 r   _InferenceRunnerc                   @  sD   e Zd ZU i Zded< edddZedd	d
ZedddZ	dS )r   _RunnersDictregistered_runnersrunner_classtype[_InferenceRunner]returnNonec                 C  sF   t  t  krtd|j| jv rtd|j d|| j|j< d S )Nz5InferenceRunner must be registered on the main threadzInferenceRunner z already registered)	threadingcurrent_threadmain_threadRuntimeErrorr   r   
ValueError)clsr   r   r   r   register_runner   s
   z _InferenceRunner.register_runnerc                 C     dS )z8Initialize the runner. This is used to load models, etc.Nr   )selfr   r   r   
initialize      z_InferenceRunner.initializedatabytesbytes | Nonec                 C  r   )z Run inference on the given data.Nr   )r   r!   r   r   r   run"   r    z_InferenceRunner.runN)r   r   r   r   )r   r   )r!   r"   r   r#   )
r	   r
   r   r   r   classmethodr   r   r   r$   r   r   r   r   r      s   
 	)
__future__r   r   abcr   r   typingr   r   r   dictstrtyper   r   r   r   r   r   <module>   s    