class CFASearch(object):
    def __init__(
        self,
        elementIds: str | list[str] | None = [],
        elementTypes: str | list[str] | None = [],
        avoidSnapshots: bool = False,
        caseInsensitive: bool = False,
        containsElementAtCenter: bool = False,
        elementSearchPath: str | list[str] | None = [],
        fields: str | list[str] | None = [],
        includeAllNamedElements: bool = False,
        insideElementAtCenter: bool = False,
        matchesElementAtCenter: bool = False,
        maxArrayCount: int = 0,
        maxChildren: int = 0,
        maxDepth: int = 0,
        namedOnly: bool = False,
        nestsWithElementAtCenter: bool = False,
        omitEmptyStrings: bool = False,
        processId: int = 0,
        rootElementIds: str | list[str] | None = [],
        rootElementTypes: str | list[str] | None = [],
        scaleCoordinates: bool = False,
        timeout: float = 0,
        unnamedOnly: bool = False,
        useApplicationSnapshot: bool = False,
        useCoordinates: bool = False,
        allow_errors: bool = False,
    ) -> "ControlFloorResponse":
        self.args = locals()
        del self.args["self"]

    def click(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("click", allow_errors=allow_errors)

    def disableSwitch(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("disableSwitch", allow_errors=allow_errors)

    def doubleClick(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("doubleClick", allow_errors=allow_errors)

    def doubleTap(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("doubleTap", allow_errors=allow_errors)

    def enableSwitch(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("enableSwitch", allow_errors=allow_errors)

    def getApplicationStructure(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("getApplicationStructure", allow_errors=allow_errors)

    def getButtons(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("getButtons", allow_errors=allow_errors)

    def getElement(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("getElement", allow_errors=allow_errors)

    def getElements(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("getElements", allow_errors=allow_errors)

    def getInputElements(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("getInputElements", allow_errors=allow_errors)

    def getInteractiveElements(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("getInteractiveElements", allow_errors=allow_errors)

    def getLiveApplicationStructure(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("getLiveApplicationStructure", allow_errors=allow_errors)

    def getNamedElementAtPoint(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("getNamedElementAtPoint", allow_errors=allow_errors)

    def getNamedElements(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("getNamedElements", allow_errors=allow_errors)

    def getNamedInputElements(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("getNamedInputElements", allow_errors=allow_errors)

    def getScrollRegion(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("getScrollRegion", allow_errors=allow_errors)

    def getSwitches(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("getSwitches", allow_errors=allow_errors)

    def getUnnamedElements(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("getUnnamedElements", allow_errors=allow_errors)

    def getUnnamedInteractiveElements(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("getUnnamedInteractiveElements", allow_errors=allow_errors)

    def mouseDown(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("mouseDown", allow_errors=allow_errors)

    def mouseUp(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("mouseUp", allow_errors=allow_errors)

    def performGesture(self, gesture: str, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("performGesture", args=locals(), allow_errors=allow_errors)

    def searchForElementDepth(self, noNotices: bool = False, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("searchForElementDepth", args=locals(), allow_errors=allow_errors)

    def swipeDown(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("swipeDown", allow_errors=allow_errors)

    def swipeLeft(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("swipeLeft", allow_errors=allow_errors)

    def swipeRight(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("swipeRight", allow_errors=allow_errors)

    def swipeUp(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("swipeUp", allow_errors=allow_errors)

    def tap(self, duration: float = 0, pressure: float = 0, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("tap", args=locals(), allow_errors=allow_errors)

    def tapAndHold(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("tapAndHold", allow_errors=allow_errors)

    def tapAndHoldFirm(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("tapAndHoldFirm", allow_errors=allow_errors)

    def tapFirm(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("tapFirm", allow_errors=allow_errors)

    def toggleSwitch(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("toggleSwitch", allow_errors=allow_errors)

    def tripleTap(self, allow_errors: bool = False) -> "ControlFloorResponse":
        return self.send_message("tripleTap", allow_errors=allow_errors)
