# mypy: disable-error-code="misc, override, attr-defined, no-redef, assignment"

import PyFCurve as PyFCurve
import PyQt5.QtWidgets
import QT4FormWidgets as QT4FormWidgets
import PyQt5.QtCore as QtCore
import PyQt5.QtWidgets as QtWidgets
import Utils as Utils
from QTFCurve.FCurveSnapSettingsMenu import FCurveSnapSettingsMenu as FCurveSnapSettingsMenu
from typing import ClassVar, Set, Tuple

class FCurveValueEdit(PyQt5.QtWidgets.QWidget):
    class _ValueEditSelectionObserver(PyFCurve.SelectionObserver):
        class _ValueEditFCurveObserver(PyFCurve.FCurveObserver):
            def __init__(self, valueEdit, syncParent) -> None: ...
            def beginValueChange(self, curve): ...
            def curveChanged(self, curve): ...
            def disable(self): ...
            def enable(self): ...
            def endValueChange(self, curve): ...
            def intermediateValueChange(self, curve): ...
        _SYNC_INTERVAL: ClassVar[int] = ...
        def __init__(self, valueEdit) -> None: ...
        def _ValueEditSelectionObserver__directSync(self): ...
        def _ValueEditSelectionObserver__tabClosed(self): ...
        def _getFCurveObserver(self): ...
        def _updateExpressionControl(self, selCurves, selKeys, selSegs): ...
        def _updatePositionControls(self, selKeys): ...
        def _updateResetTangentButton(self, selCurves, selKeys): ...
        def deselected(self, obj): ...
        def getNumSelCurves(self): ...
        def getNumSelKeyframes(self): ...
        def getNumSelSegments(self): ...
        def getNumSelTans(self): ...
        def selected(self, obj): ...
        def sync(self): ...
    def __init__(self, expressionList, graphWidget, parent) -> None: ...
    def _FCurveValueEdit__ExprChanged(self, event): ...
    def _FCurveValueEdit__VisibleUnlocked(self, obj): ...
    def _FCurveValueEdit__XPosChanged(self, event): ...
    def _FCurveValueEdit__YPosChanged(self, event): ...
    def _FCurveValueEdit__tangentReset_CB(self): ...
