# Generated by sila2.code_generator; sila2.__version__: 0.12.2
# -----
# This class does not do anything useful at runtime. Its only purpose is to provide type annotations.
# Since sphinx does not support .pyi files (yet?), this is a .py file.
# -----

from __future__ import annotations

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    

    

    
    
    
    from typing import Optional, Iterable
    from sila2.client import ClientMetadataInstance
    
    
    from labware_types import RegisterLabware_Responses
    
    from labware_types import DeleteLabware_Responses
    
    from labware_types import MoveLabware_Responses
    
    

    

    


class LabwareClient:
    """
    This feature allows you to manipulate the labware in the OT-2 and
        OT-Flex
    """
    
    

    

    

    
    def RegisterLabware(
        self,
        
        SessionIdentifier: str,
        
        LoadName: str,
        
        Location: str,
        
        *,
        metadata: Optional[Iterable[ClientMetadataInstance]] = None
    ) -> RegisterLabware_Responses:
        """
        This method registers labware to a specified position for
            the current session
        """
        ...
    
    def DeleteLabware(
        self,
        
        SessionIdentifier: str,
        
        Identifier: str,
        
        *,
        metadata: Optional[Iterable[ClientMetadataInstance]] = None
    ) -> DeleteLabware_Responses:
        """
        This method deletes labware without removing it, Only use this
            method if you are removing it yourself and make sure to not execute
            any commands while moving it.
        """
        ...
    
    def MoveLabware(
        self,
        
        SessionIdentifier: str,
        
        ItemIdentifier: str,
        
        Location: str,
        
        *,
        metadata: Optional[Iterable[ClientMetadataInstance]] = None
    ) -> MoveLabware_Responses:
        """
        This method deletes labware without removing it, Only use this
            method if you are removing it yourself and make sure to not execute
            any commands while moving it.
        """
        ...
    

    
