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

import PyFCurveGraphWidget
import QT4GLLayerStack as QT4GLLayerStack
import QT4GLLayerStack.LayerStack
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

class BaseGradientLayerStackLayer(QT4GLLayerStack.LayerStack.Layer):
    class viewportObject:
        def __init__(self, bounds) -> None: ...
        def getWorldBounds(self): ...
    def paintGL(self): ...

class GradientLayerBundle:
    def __init__(self) -> None: ...
    def activate(self): ...
    def addForegroundLayer(self, layer): ...
    def deactivate(self): ...
    def getBackgroundLayer(self): ...
    def getForegroundLayers(self): ...
    def isActive(self): ...
    def setBackgroundLayer(self, layer): ...

class GradientLayerBundleManager:
    _BACKGROUND_COLORS: ClassVar[dict] = ...
    _CURVE_COLORS: ClassVar[dict] = ...
    _CURVE_FUNCTIONS: ClassVar[dict] = ...
    _GradientLayerBundleManager__gray_background_color: ClassVar[tuple] = ...
    _GradientLayerBundleManager__gray_curve_color: ClassVar[tuple] = ...
    def __init__(self) -> None: ...
    def _GradientLayerBundleManager__calcCursorValues(self, rgb): ...
    def _GradientLayerBundleManager__getCurrentCursorLayers(self): ...
    def _probeResult_CB(self, probeInfo): ...
    def _registerCurve(self, curveName, curveAndLayerInfo): ...
    def _setActiveCurves(self, curveNames): ...
    def _setCurveKey(self, value): ...
    def _updateGraphView(self): ...

class HueGradientDrawLayer:
    def __init__(self, showBox: bool = ..., showTopBar: bool = ..., showBottomBar: bool = ..., showVerticals: bool = ..., infiniteExtent: bool = ..., clampVertical: bool = ..., cursorRGBConvertFunction: Incomplete | None = ...) -> None: ...
    def _HueGradientDrawLayer__drawBar(self, colorKeys, y): ...
    def _HueGradientDrawLayer__drawBox(self, colorKeys, ymin, ymax, xmin, xmax): ...
    def _HueGradientDrawLayer__drawCursor(self, ymin, ymax): ...
    def _HueGradientDrawLayer__drawVerticals(self, colorKeys, ymin, ymax): ...
    def _HueGradientDrawLayer__rgbConvert(self, rgb): ...
    def _getColors(self, knots, colorInfo): ...
    def _getDomainKnots(self): ...
    def _setUpColors(self): ...
    def draw(self, viewport): ...
    def getCursorValue(self): ...
    def hide(self): ...
    def hideCursor(self): ...
    def isHidden(self): ...
    def setCursorActive(self, active): ...
    def setCursorRGBConvertFunction(self, fn): ...
    def setCursorValue(self, value): ...
    def setCursorValueFromRGB(self, rgb): ...
    def show(self): ...

class HueGradientFCurveLayer(HueGradientDrawLayer, PyFCurveGraphWidget.Layer):
    def __init__(self, *args, **kwargs) -> None: ...

class HueGradientLayerStackLayer(HueGradientDrawLayer, BaseGradientLayerStackLayer):
    def __init__(self, *args, **kwargs) -> None: ...

class LinearGradientDrawLayer(HueGradientDrawLayer):
    def __init__(self, darkColor, lightColor, **kwargs) -> None: ...
    def _LinearGradientDrawLayer__lerpAndAdjustColor(self, c0, c1, x, k): ...
    def _LinearGradientDrawLayer__smush(self, value, k): ...
    def _getColors(self, knots, colorInfo): ...
    def _getDomainKnots(self): ...
    def _setUpColors(self): ...
    def setLightColor(self, newLightColor): ...

class LinearGradientFCurveLayer(LinearGradientDrawLayer, PyFCurveGraphWidget.Layer):
    def __init__(self, *args, **kwargs) -> None: ...

class LinearGradientLayerStackLayer(LinearGradientDrawLayer, BaseGradientLayerStackLayer):
    def __init__(self, *args, **kwargs) -> None: ...
