o
    ©¼–iŸ  ã                   @  s\   d dl mZ d dlZd dlZd dlmZ d dlmZ ddlm	Z	 ed Z
G dd	„ d	eƒZdS )
é    )ÚannotationsN)ÚABC)ÚLiteralé   )Úutils)Úplugin_registeredc                   @  sˆ   e Zd ZU g Zded< e ¡ Zded< 	dddd„Ze	ddd„ƒZ
d dd„Zed!dd„ƒZed!dd„ƒZed!dd„ƒZed"dd„ƒZdS )#ÚPluginzlist[Plugin]Úregistered_pluginszutils.EventEmitter[EventTypes]ÚemitterNÚtitleÚstrÚversionÚpackageÚloggerúlogging.Logger | NoneÚreturnÚNonec                 C  s   || _ || _|| _|| _d S ©N)Ú_titleÚ_versionÚ_packageÚ_logger)Úselfr   r   r   r   © r   úW/var/www/html/livekit_bhavya/venv/lib/python3.10/site-packages/livekit/agents/plugin.pyÚ__init__   s   
zPlugin.__init__Úpluginc                 C  s6   t  ¡ t  ¡ krtdƒ‚| j |¡ | j d|¡ d S )Nz-Plugins must be registered on the main threadr   )Ú	threadingÚcurrent_threadÚmain_threadÚRuntimeErrorr	   Úappendr
   Úemit)Úclsr   r   r   r   Úregister_plugin   s   zPlugin.register_pluginc                 C  s   d S r   r   ©r   r   r   r   Údownload_files'   s   zPlugin.download_filesc                 C  ó   | j S r   )r   r%   r   r   r   r   *   ó   zPlugin.packagec                 C  r'   r   )r   r%   r   r   r   r   .   r(   zPlugin.titlec                 C  r'   r   )r   r%   r   r   r   r   2   r(   zPlugin.versionc                 C  r'   r   )r   r%   r   r   r   r   6   r(   zPlugin.loggerr   )
r   r   r   r   r   r   r   r   r   r   )r   r   r   r   )r   r   )r   r   )r   r   )Ú__name__Ú
__module__Ú__qualname__r	   Ú__annotations__r   ÚEventEmitterr
   r   Úclassmethodr$   r&   Úpropertyr   r   r   r   r   r   r   r   r      s    
 û
r   )Ú
__future__r   Úloggingr   Úabcr   Útypingr   Ú r   Ú
EventTypesr   r   r   r   r   Ú<module>   s    