
    ,h                       d dl mZ ddlmZmZ d dlmZ d dlZd dlZe G d d             Z		 d	 	 	 ddZ
dd	Z	 	 	 	 dd
Z	 	 	 	 ddZ	 	 	 	 ddZ	 	 	 	 ddZ ed      e G d d                    Z ed      e G d d                    Zy)    )annotations   )event_classT_JSON_DICT)	dataclassNc                  F    e Zd ZU ded<   ded<   dZded<   d Zed        Zy)	Sinkstrnameid_Ntyping.Optional[str]sessionc                    t               }| j                  |d<   | j                  |d<   | j                  | j                  |d<   |S )Nr   idr   )dictr   r   r   )selfjsons     n/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v136/cast.pyto_jsonzSink.to_json   s?    vyyVXXT
<<#"llDO    c                v     | t        |d         t        |d         d|v rt        |d               S d       S )Nr   r   r   )r   r   r   r
   clsr   s     r   	from_jsonzSink.from_json   sJ    T&\"DJ,5,=CY(
 	
 DH
 	
r   )__name__
__module____qualname____annotations__r   r   classmethodr    r   r   r	   r	      s2    
I	H %)G!( 
 
r   r	   c              #  @   K   t               }| | |d<   d|d}|}yw)al  
    Starts observing for sinks that can be used for tab mirroring, and if set,
    sinks compatible with ``presentationUrl`` as well. When sinks are found, a
    ``sinksUpdated`` event is fired.
    Also starts observing for issue messages. When an issue is added or removed,
    an ``issueUpdated`` event is fired.

    :param presentation_url: *(Optional)*
    NpresentationUrlzCast.enablemethodparamsr   )presentation_urlr&   cmd_dictr   s       r   enabler*   (   s6      &F#$4 !H >Ds   c               #     K   ddi} | }yw)z/
    Stops observing for sinks and issues.
    r%   zCast.disableNr!   )r)   r   s     r   disabler,   >   s     
 	.H >Ds   
c              #  <   K   t               }| |d<   d|d}|}yw)z
    Sets a sink to be used when the web page requests the browser to choose a
    sink via Presentation API, Remote Playback API, or Cast SDK.

    :param sink_name:
    sinkNamezCast.setSinkToUser$   Nr'   	sink_namer&   r)   r   s       r   set_sink_to_user1   H   s/      &F"F:%H >D   c              #  <   K   t               }| |d<   d|d}|}yw)zJ
    Starts mirroring the desktop to the sink.

    :param sink_name:
    r.   zCast.startDesktopMirroringr$   Nr'   r/   s       r   start_desktop_mirroringr4   Z   s/      &F"F:.H >Dr2   c              #  <   K   t               }| |d<   d|d}|}yw)zF
    Starts mirroring the tab to the sink.

    :param sink_name:
    r.   zCast.startTabMirroringr$   Nr'   r/   s       r   start_tab_mirroringr6   k   s/      &F"F:*H >Dr2   c              #  <   K   t               }| |d<   d|d}|}yw)zK
    Stops the active Cast session on the sink.

    :param sink_name:
    r.   zCast.stopCastingr$   Nr'   r/   s       r   stop_castingr8   |   s/      &F"F:$H >Dr2   zCast.sinksUpdatedc                  .    e Zd ZU dZded<   edd       Zy)SinksUpdatedz
    This is fired whenever the list of available sinks changes. A sink is a
    device or a software surface that you can cast to.
    ztyping.List[Sink]sinksc                f     | |d   D cg c]  }t         j                  |       c}      S c c}w )Nr;   )r;   )r	   r   )r   r   is      r   r   zSinksUpdated.from_json   s-    .27m<4>>!$<
 	
<s   .N)r   r   returnr:   r   r   r   __doc__r   r    r   r!   r   r   r:   r:      s!     
 
r   r:   zCast.issueUpdatedc                  .    e Zd ZU dZded<   edd       Zy)IssueUpdatedz
    This is fired whenever the outstanding issue/error message changes.
    ``issueMessage`` is empty if there is no issue.
    r
   issue_messagec                ,     | t        |d               S )NissueMessage)rC   r   r   s     r   r   zIssueUpdated.from_json   s    d>23
 	
r   N)r   r   r>   rB   r?   r!   r   r   rB   rB      s!     
 
r   rB   )N)r(   r   r>   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])r>   rF   )r0   r
   r>   rF   )
__future__r   utilr   r   dataclassesr   enumtypingr	   r*   r,   r1   r4   r6   r8   r:   rB   r!   r   r   <module>rL      s    # * !  

 
 
6 26.	7,	7$	7"	7"	7"  !

 
  "
  !

 
  "
r   