import MSyntax  # type: ignore
from _typeshed import Incomplete
from typing import Any, ClassVar, overload

class M3dView:
    kActive: ClassVar[int] = ...
    kActiveAffected: ClassVar[int] = ...
    kActiveColors: ClassVar[int] = ...
    kActiveComponent: ClassVar[int] = ...
    kActiveTemplate: ClassVar[int] = ...
    kBackgroundColor: ClassVar[int] = ...
    kBoundingBox: ClassVar[int] = ...
    kCenter: ClassVar[int] = ...
    kDefaultQualityRenderer: ClassVar[int] = ...
    kDepth_8: ClassVar[int] = ...
    kDepth_Float: ClassVar[int] = ...
    kDisplayCVs: ClassVar[int] = ...
    kDisplayCameras: ClassVar[int] = ...
    kDisplayDeformers: ClassVar[int] = ...
    kDisplayDimensions: ClassVar[int] = ...
    kDisplayDynamicConstraints: ClassVar[int] = ...
    kDisplayDynamics: ClassVar[int] = ...
    kDisplayEverything: ClassVar[int] = ...
    kDisplayFluids: ClassVar[int] = ...
    kDisplayFollicles: ClassVar[int] = ...
    kDisplayGrid: ClassVar[int] = ...
    kDisplayHairSystems: ClassVar[int] = ...
    kDisplayHulls: ClassVar[int] = ...
    kDisplayIkHandles: ClassVar[int] = ...
    kDisplayImagePlane: ClassVar[int] = ...
    kDisplayJoints: ClassVar[int] = ...
    kDisplayLights: ClassVar[int] = ...
    kDisplayLocators: ClassVar[int] = ...
    kDisplayManipulators: ClassVar[int] = ...
    kDisplayMeshes: ClassVar[int] = ...
    kDisplayNCloths: ClassVar[int] = ...
    kDisplayNParticles: ClassVar[int] = ...
    kDisplayNRigids: ClassVar[int] = ...
    kDisplayNurbsCurves: ClassVar[int] = ...
    kDisplayNurbsSurfaces: ClassVar[int] = ...
    kDisplayParticleInstancers: ClassVar[int] = ...
    kDisplayPivots: ClassVar[int] = ...
    kDisplayPlanes: ClassVar[int] = ...
    kDisplaySelectHandles: ClassVar[int] = ...
    kDisplayStrokes: ClassVar[int] = ...
    kDisplaySubdivSurfaces: ClassVar[int] = ...
    kDisplayTextures: ClassVar[int] = ...
    kDormant: ClassVar[int] = ...
    kDormantColors: ClassVar[int] = ...
    kExcludeMotionTrails: ClassVar[int] = ...
    kExcludePluginShapes: ClassVar[int] = ...
    kExternalRenderer: ClassVar[int] = ...
    kFlatShaded: ClassVar[int] = ...
    kGouraudShaded: ClassVar[int] = ...
    kHighQualityRenderer: ClassVar[int] = ...
    kHilite: ClassVar[int] = ...
    kIntermediateObject: ClassVar[int] = ...
    kInvisible: ClassVar[int] = ...
    kLead: ClassVar[int] = ...
    kLeft: ClassVar[int] = ...
    kLightActive: ClassVar[int] = ...
    kLightAll: ClassVar[int] = ...
    kLightDefault: ClassVar[int] = ...
    kLightNone: ClassVar[int] = ...
    kLightSelected: ClassVar[int] = ...
    kLive: ClassVar[int] = ...
    kNoStatus: ClassVar[int] = ...
    kPoints: ClassVar[int] = ...
    kRight: ClassVar[int] = ...
    kStippleDashed: ClassVar[int] = ...
    kStippleNone: ClassVar[int] = ...
    kTemplate: ClassVar[int] = ...
    kTemplateColor: ClassVar[int] = ...
    kUnused1: ClassVar[int] = ...
    kViewport2Renderer: ClassVar[int] = ...
    kWireFrame: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def active3dView() -> M3dView: ...
    @staticmethod
    def activeAffectedColor() -> MColor: ...  # type: ignore
    @staticmethod
    def activeTemplateColor() -> MColor: ...  # type: ignore
    @staticmethod
    def applicationShell() -> long: ...  # type: ignore
    @staticmethod
    def backgroundColor() -> MColor: ...  # type: ignore
    @staticmethod
    def backgroundColorBottom() -> MColor: ...  # type: ignore
    @staticmethod
    def backgroundColorTop() -> MColor: ...  # type: ignore
    def beginGL(self) -> self: ...  # type: ignore
    def beginProjMatrixOverride(self, projectionMatrix) -> self: ...  # type: ignore
    def beginSelect(self, buffer=..., size=...) -> self: ...  # type: ignore
    @overload
    def beginXorDrawing(self, drawOrthographic=..., disableDepthTesting=..., lineWidth=..., stipplePattern=..., lineColor=...) -> self: ...  # type: ignore
    @overload
    def beginXorDrawing(self) -> Any: ...  # type: ignore
    def colorAtIndex(self, index, table=...) -> MColor: ...  # type: ignore
    def colorMask(self, *args, **kwargs): ...
    def disallowPolygonOffset(self) -> bool: ...
    def display(self) -> long: ...  # type: ignore
    @staticmethod
    def displayStatus(path) -> int: ...
    def displayStyle(self) -> int: ...
    def drawText(self, text, position, textPosition=...) -> self: ...  # type: ignore
    def endGL(self) -> self: ...  # type: ignore
    def endProjMatrixOverride(self) -> self: ...  # type: ignore
    def endSelect(self) -> int: ...
    @overload
    def endXorDrawing(self) -> self: ...  # type: ignore
    @overload
    def endXorDrawing(self) -> Any: ...  # type: ignore
    def filteredObjectList(self) -> MSelectionList: ...  # type: ignore
    @staticmethod
    def get3dView(index) -> M3dView: ...
    def getCamera(self) -> MDagPath: ...  # type: ignore
    def getColorIndexAndTable(self, *args, **kwargs): ...
    def getLightCount(self, visible=...) -> int: ...
    def getLightIndex(self, lightNumber) -> int: ...
    def getLightPath(self, lightNumber) -> MDagPath: ...  # type: ignore
    def getLightingMode(self) -> int: ...
    @staticmethod
    def getM3dViewFromModelEditor(name) -> M3dView: ...
    @staticmethod
    def getM3dViewFromModelPanel(name) -> M3dView: ...
    def getRendererName(self) -> int: ...
    def getScreenPosition(self, *args, **kwargs): ...
    @staticmethod
    def hiliteColor() -> MColor: ...  # type: ignore
    def initNames(self) -> self: ...  # type: ignore
    @staticmethod
    def isBackgroundGradient() -> bool: ...
    def isLightVisible(self, lightNumber) -> bool: ...
    def isShadeActiveOnly(self) -> bool: ...
    def isVisible(self) -> bool: ...
    @staticmethod
    def leadColor() -> MColor: ...  # type: ignore
    @staticmethod
    def liveColor() -> MColor: ...  # type: ignore
    def loadName(self, int) -> self: ...  # type: ignore
    def modelViewMatrix(self) -> MMatrix: ...  # type: ignore
    def multipleDrawEnabled(self) -> bool: ...
    def multipleDrawPassCount(self) -> int: ...
    def numActiveColors(self) -> int: ...
    def numDormantColors(self) -> int: ...
    def numUserDefinedColors(self) -> int: ...
    @staticmethod
    def numberOf3dViews() -> int: ...
    def objectDisplay(self) -> int: ...
    def objectListFilterName(self) -> string: ...  # type: ignore
    def playblastPortHeight(self) -> int: ...
    def playblastPortWidth(self) -> int: ...
    def pluginObjectDisplay(self, pluginDisplayFilter) -> bool: ...
    def popName(self) -> self: ...  # type: ignore
    def popViewport(self) -> self: ...  # type: ignore
    def portHeight(self) -> int: ...
    def portWidth(self) -> int: ...
    def projectionMatrix(self) -> MMatrix: ...  # type: ignore
    def pushName(self, int) -> self: ...  # type: ignore
    def pushViewport(self, x, y, width, height) -> self: ...  # type: ignore
    def readBufferTo2dTexture(self, x, y, width, height) -> self: ...  # type: ignore
    def readColorBuffer(self, image, readRGBA=...) -> self: ...  # type: ignore
    def readDepthMap(self, x, y, width, heigth, bufferPtr, depthMapPrecision) -> self: ...  # type: ignore
    @staticmethod
    def referenceLayerColor() -> MColor: ...  # type: ignore
    def refresh(self, all=..., force=..., offscreen=...) -> self: ...  # type: ignore
    def renderOverrideName(self) -> string: ...  # type: ignore
    def rendererString(self) -> string: ...  # type: ignore
    def scheduleRefresh(self) -> self: ...  # type: ignore
    @staticmethod
    def scheduleRefreshAllViews() -> None: ...
    def selectMode(self) -> bool: ...
    def setCamera(self, camera) -> self: ...  # type: ignore
    def setColorMask(self, r, g, b, a) -> self: ...  # type: ignore
    def setDisallowPolygonOffset(self, v) -> self: ...  # type: ignore
    def setDisplayStyle(self, style, activeOnly=...) -> self: ...  # type: ignore
    @overload
    def setDrawColor(self, index, table=...) -> self: ...  # type: ignore
    @overload
    def setDrawColor(self, color) -> self: ...  # type: ignore
    def setDrawColorAndAlpha(self, color) -> self: ...  # type: ignore
    def setMultipleDrawEnable(self, enable) -> self: ...  # type: ignore
    def setMultipleDrawPassCount(self, count) -> self: ...  # type: ignore
    def setObjectDisplay(self, displayMask) -> self: ...  # type: ignore
    def setObjectListFilterName(self, name) -> self: ...  # type: ignore
    def setPluginObjectDisplay(self, pluginDisplayFilter, on) -> self: ...  # type: ignore
    def setRenderOverrideName(self, name) -> self: ...  # type: ignore
    def setShowObjectFilterNameInHUD(self, show) -> self: ...  # type: ignore
    def setShowViewSelectedChildren(self, show) -> self: ...  # type: ignore
    def setUserDefinedColor(self, index, color) -> self: ...  # type: ignore
    def setViewSelectedPrefix(self, prefix) -> self: ...  # type: ignore
    def showObjectFilterNameInHUD(self) -> bool: ...
    def showViewSelectedChildren(self) -> bool: ...
    @staticmethod
    def templateColor() -> MColor: ...  # type: ignore
    def textureMode(self) -> bool: ...
    def twoSidedLighting(self) -> bool: ...
    def updateViewingParameters(self) -> self: ...  # type: ignore
    def userDefinedColorIndex(self, index) -> int: ...
    def usingDefaultMaterial(self) -> bool: ...
    def usingMipmappedTextures(self) -> bool: ...
    def viewIsFiltered(self) -> bool: ...
    def viewSelectedPrefix(self) -> string: ...  # type: ignore
    def viewToObjectSpace(self, x_pos, y_pos, localMatrixInverse, oPt, oVector) -> self: ...  # type: ignore
    @overload
    def viewToWorld(self, x_pos, y_pos, worldPt, worldVector) -> self: ...  # type: ignore
    @overload
    def viewToWorld(self, x_pos, y_pos, nearClipPt, farClipPt) -> self: ...  # type: ignore
    def viewport(self, *args, **kwargs): ...
    def widget(self) -> long: ...  # type: ignore
    def window(self) -> long: ...  # type: ignore
    def wireframeOnShaded(self) -> bool: ...
    def wireframeOnlyInShadedMode(self) -> bool: ...
    def worldToView(self, *args, **kwargs): ...
    def writeColorBuffer(self, image, x=..., y=...) -> self: ...  # type: ignore
    def xray(self) -> bool: ...
    def xrayJoints(self) -> bool: ...

class MCursor:
    kCrossHairCursor: ClassVar[MCursor] = ...
    kDefaultCursor: ClassVar[MCursor] = ...
    kDoubleCrossHairCursor: ClassVar[MCursor] = ...
    kEditCursor: ClassVar[MCursor] = ...
    kHandCursor: ClassVar[MCursor] = ...
    kPencilCursor: ClassVar[MCursor] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def __eq__(self, other: object) -> bool: ...
    def __ge__(self, other: object) -> bool: ...
    def __gt__(self, other: object) -> bool: ...
    def __le__(self, other: object) -> bool: ...
    def __lt__(self, other: object) -> bool: ...
    def __ne__(self, other: object) -> bool: ...

class MDrawData:
    def __init__(self, *args, **kwargs) -> None: ...
    def geometry(self) -> long: ...  # type: ignore

class MDrawInfo:
    def __init__(self, *args, **kwargs) -> None: ...
    def canDrawComponent(self, isDisplayOn, compMask) -> bool: ...
    def completelyInside(self) -> bool: ...
    @overload
    def displayStatus(self) -> int: ...
    @overload
    def displayStatus(self) -> Any: ...  # type: ignore
    @overload
    def displayStyle(self) -> int: ...
    @overload
    def displayStyle(self) -> Any: ...  # type: ignore
    def getPrototype(self, drawHandler) -> MDrawRequest: ...
    def inSelect(self) -> bool: ...
    def inUserInteraction(self) -> bool: ...
    def inclusiveMatrix(self) -> MMatrix: ...  # type: ignore
    def multiPath(self) -> MDagPath: ...  # type: ignore
    def objectDisplayStatus(self, displayObj) -> bool: ...
    def pluginObjectDisplayStatus(self, pluginDisplayFilter) -> bool: ...
    def projectionMatrix(self) -> MMatrix: ...  # type: ignore
    def setMultiPath(self, path) -> self: ...  # type: ignore
    def userChangingViewContext(self) -> bool: ...
    def view(self) -> M3dView: ...

class MDrawProperties:
    color: Incomplete
    lineStyle: Incomplete
    lineWidth: Incomplete
    pointSize: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...

class MDrawRequest:
    color: Incomplete
    component: Incomplete
    displayCullOpposite: Incomplete
    displayCulling: Incomplete
    displayStatus: Any
    displayStyle: Any
    drawData: Incomplete
    drawLast: Incomplete
    isTransparent: Incomplete
    material: Incomplete
    matrix: Incomplete
    multiPath: Incomplete
    token: Incomplete
    view: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def planeColor(self, table) -> int: ...
    def setPlaneColor(self, value, table) -> self: ...  # type: ignore

class MEvent:
    controlKey: ClassVar[int] = ...
    kLeftMouse: ClassVar[int] = ...
    kMiddleMouse: ClassVar[int] = ...
    shiftKey: ClassVar[int] = ...
    modifiers: Incomplete
    position: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def getWindowPosition(self, *args, **kwargs): ...
    def isModifierControl(self) -> bool: ...
    def isModifierKeyRelease(self) -> bool: ...
    def isModifierLeftMouseButton(self) -> bool: ...
    def isModifierMiddleMouseButton(self) -> bool: ...
    def isModifierNone(self) -> bool: ...
    def isModifierShift(self) -> bool: ...
    def mouseButton(self) -> mouseButtonType: ...  # type: ignore

class MFnCircleSweepManip(MFnManip3D):
    endPoint: Incomplete
    startPoint: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def angleIndex(self) -> int: ...
    def axisIndex(self) -> int: ...
    def centerIndex(self) -> int: ...
    def connectToAnglePlug(self, anglePlug) -> self: ...  # type: ignore
    def create(self, manipName=..., angleName=...) -> MObject: ...  # type: ignore
    def endCircleIndex(self) -> int: ...
    def setAngle(self, angle) -> self: ...  # type: ignore
    def setCenterPoint(self, centerPoint) -> self: ...  # type: ignore
    def setDrawAsArc(self, state) -> self: ...  # type: ignore
    def setNormal(self, normal) -> self: ...  # type: ignore
    def setRadius(self, radius) -> self: ...  # type: ignore
    def startCircleIndex(self) -> int: ...

class MFnCurveSegmentManip(MFnManip3D):
    endParameter: Incomplete
    startParameter: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def connectToCurvePlug(self, curvePlug) -> self: ...  # type: ignore
    def connectToEndParamPlug(self, endParamPlug) -> self: ...  # type: ignore
    def connectToStartParamPlug(self, startParamPlug) -> self: ...  # type: ignore
    def create(self, manipName=..., startParamName=..., endParamName=...) -> MObject: ...  # type: ignore
    def curveIndex(self) -> int: ...
    def endParamIndex(self) -> int: ...
    def startParamIndex(self) -> int: ...

class MFnDirectionManip(MFnManip3D):
    def __init__(self, *args, **kwargs) -> None: ...
    def connectToDirectionPlug(self, directionPlug) -> self: ...  # type: ignore
    def create(self, manipName=..., directionName=...) -> MObject: ...  # type: ignore
    def directionIndex(self) -> int: ...
    def endPointIndex(self) -> int: ...
    def setDirection(self, direction) -> self: ...  # type: ignore
    def setDrawStart(self, bool) -> self: ...  # type: ignore
    def setNormalizeDirection(self, bool) -> self: ...  # type: ignore
    def setStartPoint(self, startPoint) -> self: ...  # type: ignore
    def startPointIndex(self) -> int: ...

class MFnDiscManip(MFnManip3D):
    def __init__(self, *args, **kwargs) -> None: ...
    def angleIndex(self) -> int: ...
    def axisIndex(self) -> int: ...
    def centerIndex(self) -> int: ...
    def connectToAnglePlug(self, directionPlug) -> self: ...  # type: ignore
    def create(self, manipName=..., angleName=...) -> MObject: ...  # type: ignore
    def setAngle(self, angle) -> self: ...  # type: ignore
    def setCenterPoint(self, centerPoint) -> self: ...  # type: ignore
    def setNormal(self, normal) -> self: ...  # type: ignore
    def setRadius(self, radius) -> self: ...  # type: ignore

class MFnDistanceManip(MFnManip3D):
    isDrawLineOn: Incomplete
    isDrawStartOn: Incomplete
    scalingFactor: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def connectToDistancePlug(self, directionPlug) -> self: ...  # type: ignore
    def create(self, manipName=..., distanceName=...) -> MObject: ...  # type: ignore
    def currentPointIndex(self) -> int: ...
    def directionIndex(self) -> int: ...
    def distanceIndex(self) -> int: ...
    def setDirection(self, direction) -> self: ...  # type: ignore
    def setStartPoint(self, startPoint) -> self: ...  # type: ignore
    def startPointIndex(self) -> int: ...

class MFnFreePointTriadManip(MFnManip3D):
    kViewPlane: ClassVar[int] = ...
    kXYPlane: ClassVar[int] = ...
    kXZPlane: ClassVar[int] = ...
    kYZPlane: ClassVar[int] = ...
    isDrawAxesOn: Incomplete
    isKeyframeAllOn: Incomplete
    isSnapModeOn: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def connectToPointPlug(self, pointPlug) -> self: ...  # type: ignore
    def create(self, manipName=..., pointName=...) -> MObject: ...  # type: ignore
    def pointIndex(self) -> int: ...
    def setDirection(self, direction) -> self: ...  # type: ignore
    def setDrawArrowHead(self, state) -> self: ...  # type: ignore
    def setGlobalTriadPlane(self, whichPlane) -> self: ...  # type: ignore
    def setPoint(self, pointValue) -> self: ...  # type: ignore

class MFnManip3D(MFnTransform):  # type: ignore
    isOptimizePlaybackOn: Incomplete
    isVisible: Incomplete
    manipScale: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def deleteManipulator(manip) -> None: ...
    @staticmethod
    def drawPlaneHandles() -> bool: ...
    @staticmethod
    def globalSize() -> float: ...
    @staticmethod
    def handleSize() -> float: ...
    @staticmethod
    def lineSize() -> float: ...
    def rotateXYZValue(self, valIndex) -> MEulerRotation: ...  # type: ignore
    @staticmethod
    def setDrawPlaneHandles(bool) -> None: ...
    @staticmethod
    def setGlobalSize(float) -> None: ...
    @staticmethod
    def setHandleSize(float) -> None: ...
    @staticmethod
    def setLineSize(float) -> None: ...

class MFnPointOnCurveManip(MFnManip3D):
    isDrawCurveOn: Incomplete
    parameter: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def connectToCurvePlug(self, curvePlug) -> self: ...  # type: ignore
    def connectToParamPlug(self, paramPlug) -> self: ...  # type: ignore
    def create(self, manipName=..., paramName=...) -> MObject: ...  # type: ignore
    def curveIndex(self) -> int: ...
    def curvePoint(self) -> MPoint: ...  # type: ignore
    def paramIndex(self) -> int: ...

class MFnPointOnSurfaceManip(MFnManip3D):
    isDrawSurfaceOn: Incomplete
    uParam: Incomplete
    vParam: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def connectToParamPlug(self, paramPlug) -> self: ...  # type: ignore
    def connectToSurfacePlug(self, surfacePlug) -> self: ...  # type: ignore
    def create(self, manipName=..., paramName=...) -> MObject: ...  # type: ignore
    def paramIndex(self) -> int: ...
    def setDrawArrows(self, state) -> self: ...  # type: ignore
    def surfaceIndex(self) -> int: ...

class MFnRotateManip(MFnManip3D):
    kGimbal: ClassVar[int] = ...
    kObjectSpace: ClassVar[int] = ...
    kWorldSpace: ClassVar[int] = ...
    isSnapModeOn: Incomplete
    rotateMode: Incomplete
    snapIncrement: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def connectToRotationCenterPlug(self, rotationCenterPlug) -> self: ...  # type: ignore
    def connectToRotationPlug(self, rotationPlug) -> self: ...  # type: ignore
    def create(self, manipName=..., rotationName=...) -> MObject: ...  # type: ignore
    def displayWithNode(self, node) -> self: ...  # type: ignore
    def rotationCenterIndex(self) -> int: ...
    def rotationIndex(self) -> int: ...
    def setInitialRotation(self, rotation) -> self: ...  # type: ignore
    def setRotationCenter(self, rotationCenter) -> self: ...  # type: ignore

class MFnScaleManip(MFnManip3D):
    kArbitraryOrientation: ClassVar[int] = ...
    kDefaultOrientation: ClassVar[int] = ...
    isSnapModeOn: Incomplete
    orientation: Incomplete
    orientationMode: Incomplete
    snapIncrement: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def connectToScaleCenterPlug(self, scaleCenterPlug) -> self: ...  # type: ignore
    def connectToScalePlug(self, scalePlug) -> self: ...  # type: ignore
    def create(self, manipName=..., scaleName=...) -> MObject: ...  # type: ignore
    def displayWithNode(self, node) -> self: ...  # type: ignore
    def scaleCenterIndex(self) -> int: ...
    def scaleIndex(self) -> int: ...
    def setInitialScale(self, scale) -> self: ...  # type: ignore

class MFnStateManip(MFnManip3D):
    maxStates: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def connectToStatePlug(self, statePlug) -> self: ...  # type: ignore
    def create(self, manipName=..., stateName=...) -> MObject: ...  # type: ignore
    def positionIndex(self) -> int: ...
    def setInitialState(self, initialState) -> self: ...  # type: ignore
    def state(self) -> int: ...
    def stateIndex(self) -> int: ...

class MFnToggleManip(MFnManip3D):
    direction: Incomplete
    length: Incomplete
    startPoint: Incomplete
    toggle: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def connectToTogglePlug(self, togglePlug) -> self: ...  # type: ignore
    def create(self, manipName=..., toggleName=...) -> MObject: ...  # type: ignore
    def directionIndex(self) -> int: ...
    def lengthIndex(self) -> int: ...
    def startPointIndex(self) -> int: ...
    def toggleIndex(self) -> int: ...

class MHWShaderSwatchGenerator(MSwatchRenderBase):  # type: ignore
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def createObj(obj, renderObj, res) -> MSwatchRenderBase: ...  # type: ignore
    def doIteration(self) -> bool: ...
    @staticmethod
    def getSwatchBackgroundColor() -> MColor: ...  # type: ignore
    @staticmethod
    def initialize() -> string: ...  # type: ignore

class MManipData:
    def __init__(self, *args, **kwargs) -> None: ...
    def asBool(self) -> bool: ...
    def asDouble(self) -> float: ...
    def asFloat(self) -> float: ...
    def asLong(self) -> int: ...
    def asMObject(self) -> int: ...
    def asShort(self) -> int: ...
    def asUnsigned(self) -> int: ...
    def isSimple(self) -> bool: ...

class MMaterial:
    kAmbientColor: ClassVar[int] = ...
    kBumpMap: ClassVar[int] = ...
    kColor: ClassVar[int] = ...
    kCosinePower: ClassVar[int] = ...
    kDiffuse: ClassVar[int] = ...
    kEccentricity: ClassVar[int] = ...
    kHighlightSize: ClassVar[int] = ...
    kIncandescence: ClassVar[int] = ...
    kReflectedColor: ClassVar[int] = ...
    kReflectivity: ClassVar[int] = ...
    kRoughness: ClassVar[int] = ...
    kSpecularColor: ClassVar[int] = ...
    kSpecularRollOff: ClassVar[int] = ...
    kTransluscence: ClassVar[int] = ...
    kTransparency: ClassVar[int] = ...
    kWhiteness: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def applyTexture(self, view, data) -> self: ...  # type: ignore
    @staticmethod
    def defaultMaterial() -> MMaterial: ...
    def evaluateDiffuse(self) -> self: ...  # type: ignore
    def evaluateEmission(self) -> self: ...  # type: ignore
    def evaluateMaterial(self, view, path) -> self: ...  # type: ignore
    def evaluateShininess(self) -> self: ...  # type: ignore
    def evaluateSpecular(self) -> self: ...  # type: ignore
    def evaluateTexture(self, data) -> self: ...  # type: ignore
    def getDiffuse(self) -> MColor: ...  # type: ignore
    def getEmission(self) -> MColor: ...  # type: ignore
    def getHasTransparency(self) -> bool: ...
    def getHwShaderNode(self) -> MPxHwShaderNode: ...
    def getShininess(self) -> float: ...
    def getSpecular(self) -> MColor: ...  # type: ignore
    def getTextureTransformation(self, data, texXform) -> self: ...  # type: ignore
    def materialIsTextured(self) -> bool: ...
    def setMaterial(self, path, hasTransparency) -> self: ...  # type: ignore
    def shadingEngine(self) -> MObject: ...  # type: ignore
    def textureImage(self, image, color, chan, dagPath, xRes=..., yRes=...) -> self: ...  # type: ignore

class MMaterialArray:
    sizeIncrement: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def append(self, element) -> self: ...  # type: ignore
    def clear(self) -> self: ...  # type: ignore
    def copy(self, source) -> self: ...  # type: ignore
    def insert(self, element, index) -> self: ...  # type: ignore
    def remove(self, index) -> self: ...  # type: ignore
    def set(self, element, index) -> self: ...  # type: ignore
    def setLength(self, length) -> self: ...  # type: ignore
    def __getitem__(self, index): ...
    def __len__(self) -> int: ...

class MPaintMessage(MMessage):  # type: ignore
    @staticmethod
    def addVertexColorCallback(function, clientData=...) -> id: ...  # type: ignore

class MPanelCanvas:
    kGraphEditorAxisLabels: ClassVar[int] = ...
    kGraphEditorBackground: ClassVar[int] = ...
    kGraphEditorCurveNames: ClassVar[int] = ...
    kGraphEditorCurves: ClassVar[int] = ...
    kGraphEditorFirstDefaultDraw: ClassVar[int] = ...
    kGraphEditorGrid: ClassVar[int] = ...
    kGraphEditorLastDefaultDraw: ClassVar[int] = ...
    kGraphEditorOverlayTexture: ClassVar[int] = ...
    kGraphEditorRetimeToolText: ClassVar[int] = ...
    kGraphEditorTimeMarker: ClassVar[int] = ...
    kGraphEditorUndefined: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def addPrimitive(self, *args, **kwargs): ...
    def createFloatVertexBuffer(self, tVals, yVals, colors) -> int: ...
    def createPrimitive(self, primType, bufferId, startIndex, numVertices, props) -> int: ...
    def createTimeVertexBuffer(self, tVals, yVals, colors) -> int: ...
    def destroyPrimitive(self, primitiveId) -> Any: ...
    def destroyVertexBuffer(self, bufferId) -> Any: ...
    def isAutoRefresh(self) -> bool: ...
    def isLayerVisible(self, int) -> bool: ...
    def isValid(self) -> bool: ...
    def refresh(self) -> Any: ...
    def registerDrawUICallback(self, layer, cb, clientData) -> callbackId: ...  # type: ignore
    def removePrimitive(self, *args, **kwargs): ...
    def setAutoRefresh(self) -> Any: ...
    def setLayerVisible(self, int, bool) -> Any: ...
    def supportsUIDrawing(self) -> bool: ...
    def unregisterDrawUICallback(self, callbackId) -> Any: ...

class MPanelCanvasInfo:
    def __init__(self, *args, **kwargs) -> None: ...
    def getViewportBounds(self) -> Any: ...
    def getViewportSize(self) -> Any: ...
    def name(self) -> MString: ...  # type: ignore
    def setViewportBounds(self, bounds) -> Any: ...
    def supportsUIDrawing(self) -> bool: ...

class MPxContext:
    kImage1: ClassVar[int] = ...
    kImage2: ClassVar[int] = ...
    kImage3: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def abortAction(self) -> None: ...
    def addManipulator(self, manipulator) -> None: ...
    def argTypeNumericalInput(self, index) -> MSyntax.MArgType: ...
    def beginMarquee(self, event) -> self: ...  # type: ignore
    def completeAction(self) -> None: ...
    def deleteAction(self) -> None: ...
    def deleteManipulators(self) -> None: ...
    def doDrag(self, event, drawMgr, context) -> None: ...
    def doDragLegacy(self, event) -> None: ...
    def doEnterRegion(self, event) -> None: ...
    def doExitRegion(self, event) -> None: ...
    def doHold(self, event, drawMgr, context) -> None: ...
    def doHoldLegacy(self, event) -> None: ...
    def doPress(self, event, drawMgr, context) -> None: ...
    def doPressLegacy(self, event) -> None: ...
    def doPtrMoved(self, event, drawMgr, context) -> None: ...
    def doPtrMovedLegacy(self, event) -> None: ...
    def doRelease(self, event, drawMgr, context) -> None: ...
    def doReleaseLegacy(self, event) -> None: ...
    def dragMarquee(self, event) -> self: ...  # type: ignore
    def drawFeedback(self, event, drawMgr, context) -> None: ...
    def feedbackNumericalInput(self) -> bool: ...
    def helpStateHasChanged(self, event) -> None: ...
    def image(self, index) -> string: ...  # type: ignore
    def inAlternateContext(self) -> bool: ...
    def newToolCommand(self) -> MPxToolCommand: ...
    def processNumericalInput(self, values, flags, isAbsolute) -> bool: ...
    def releaseMarquee(self, *args, **kwargs): ...
    def setCursor(self, newCursor) -> self: ...  # type: ignore
    def setHelpString(self, str) -> self: ...  # type: ignore
    def setImage(self, image, index) -> self: ...  # type: ignore
    def setTitleString(self, str) -> self: ...  # type: ignore
    @overload
    def stringClassName(self) -> string: ...  # type: ignore
    @overload
    def stringClassName(self) -> Any: ...  # type: ignore
    def toolOffCleanup(self) -> None: ...
    def toolOnSetup(self, event) -> None: ...

class MPxContextCommand:
    def __init__(self, *args, **kwargs) -> None: ...
    def appendSyntax(self) -> None: ...
    def doEditFlags(self) -> None: ...
    def doQueryFlags(self) -> None: ...
    @overload
    def makeObj(self) -> MPxContext: ...
    @overload
    def makeObj(self) -> Any: ...  # type: ignore
    def parser(self, *args, **kwargs): ...
    def setResult(self) -> None: ...
    def syntax(self, *args, **kwargs): ...

class MPxDragAndDropBehavior:
    def __init__(self, *args, **kwargs) -> None: ...
    def connectAttrToAttr(self, sourcePlug, destinationPlug, force) -> None: ...
    def connectAttrToNode(self, sourcePlug, destinationNode, force) -> None: ...
    def connectNodeToAttr(self, sourceNode, destinationPlug, force) -> None: ...
    def connectNodeToNode(self, sourceNode, destinationNode, force) -> None: ...
    def shouldBeUsedFor(self, sourceNode, destinationNode, sourcePlug, destinationPlug) -> bool: ...

class MPxHardwareShader(MPxNode):  # type: ignore
    kIsTransparent: ClassVar[int] = ...
    kNoTransparencyFrontBackCull: ClassVar[int] = ...
    kNoTransparencyPolygonSort: ClassVar[int] = ...
    outColor: ClassVar[MObject] = ...  # type: ignore
    outColorB: ClassVar[MObject] = ...  # type: ignore
    outColorG: ClassVar[MObject] = ...  # type: ignore
    outColorR: ClassVar[MObject] = ...  # type: ignore
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def findResource(name, shaderPath) -> string: ...  # type: ignore
    def getAvailableImages(self, *args, **kwargs): ...
    @staticmethod
    def getHardwareShader(object) -> TODO: ...  # type: ignore
    def profile(self) -> MRenderProfile: ...  # type: ignore
    def renderImage(self, *args, **kwargs): ...
    def renderSwatchImage(self, image) -> self: ...  # type: ignore
    def setUniformParameters(self, parameters, remapCurrentValues=..., dagModifier=...) -> self: ...  # type: ignore
    def setVaryingParameters(self, parameters, remapCurrentValues=..., dagModifier=...) -> self: ...  # type: ignore
    def transparencyOptions(self) -> int: ...

class MPxHwShaderNode(MPxNode):  # type: ignore
    kDirtyAll: ClassVar[int] = ...
    kDirtyColorArrays: ClassVar[int] = ...
    kDirtyNone: ClassVar[int] = ...
    kDirtyNormalArray: ClassVar[int] = ...
    kDirtyTexCoordArrays: ClassVar[int] = ...
    kDirtyVertexArray: ClassVar[int] = ...
    kIsTransparent: ClassVar[int] = ...
    kNoTransparencyFrontBackCull: ClassVar[int] = ...
    kNoTransparencyPolygonSort: ClassVar[int] = ...
    kWriteAll: ClassVar[int] = ...
    kWriteColorArrays: ClassVar[int] = ...
    kWriteNone: ClassVar[int] = ...
    kWriteNormalArray: ClassVar[int] = ...
    kWriteTexCoordArrays: ClassVar[int] = ...
    kWriteVertexArray: ClassVar[int] = ...
    outColor: ClassVar[MObject] = ...  # type: ignore
    outColorB: ClassVar[MObject] = ...  # type: ignore
    outColorG: ClassVar[MObject] = ...  # type: ignore
    outColorR: ClassVar[MObject] = ...  # type: ignore
    outGlowColor: ClassVar[MObject] = ...  # type: ignore
    outGlowColorB: ClassVar[MObject] = ...  # type: ignore
    outGlowColorG: ClassVar[MObject] = ...  # type: ignore
    outGlowColorR: ClassVar[MObject] = ...  # type: ignore
    outMatteOpacity: ClassVar[MObject] = ...  # type: ignore
    outMatteOpacityB: ClassVar[MObject] = ...  # type: ignore
    outMatteOpacityG: ClassVar[MObject] = ...  # type: ignore
    outMatteOpacityR: ClassVar[MObject] = ...  # type: ignore
    outTransparency: ClassVar[MObject] = ...  # type: ignore
    outTransparencyB: ClassVar[MObject] = ...  # type: ignore
    outTransparencyG: ClassVar[MObject] = ...  # type: ignore
    outTransparencyR: ClassVar[MObject] = ...  # type: ignore
    def __init__(self, *args, **kwargs) -> None: ...
    def bind(self, request, view) -> self: ...  # type: ignore
    @overload
    def colorsPerVertex(self) -> int: ...
    @overload
    def colorsPerVertex(self) -> Any: ...  # type: ignore
    def currentPath(self) -> MDagPath: ...  # type: ignore
    def currentShadingEngine(self) -> MObject: ...  # type: ignore
    def dirtyMask(self) -> int: ...
    def geometry(self, request, view, prim, writable, indexCount, indexArray, vertexCount, vertexIDs, vertexArray, normalCount, normalArrays, colorCount, colorArrays, texCoordCount, texCoordArrays) -> self: ...  # type: ignore
    def getAvailableImages(self, *args, **kwargs): ...
    def getColorSetNames(self, names) -> int: ...
    @staticmethod
    def getHwShaderNode(object) -> MPxHwShaderNode: ...
    def getTexCoordSetNames(self, names) -> int: ...
    def glBind(self, shapePath) -> self: ...  # type: ignore
    def glGeometry(self, shapePath, prim, writable, indexCount, indexArray, vertexCount, vertexIDs, vertexArray, normalCount, normalArrays, colorCount, colorArrays, texCoordCount, texCoordArrays) -> self: ...  # type: ignore
    def glUnbind(self, shapePath) -> self: ...  # type: ignore
    def hasTransparency(self) -> bool: ...
    def invertTexCoords(self) -> bool: ...
    @overload
    def normalsPerVertex(self) -> int: ...
    @overload
    def normalsPerVertex(self) -> Any: ...  # type: ignore
    def provideVertexIDs(self) -> bool: ...
    def renderImage(self, *args, **kwargs): ...
    def renderSwatchImage(self, *args, **kwargs): ...
    def supportsBatching(self) -> bool: ...
    @overload
    def texCoordsPerVertex(self) -> int: ...
    @overload
    def texCoordsPerVertex(self) -> Any: ...  # type: ignore
    def transparencyOptions(self) -> int: ...
    def unbind(self, request, view) -> self: ...  # type: ignore

class MPxLocatorNode(MPxNode):  # type: ignore
    boundingBoxCenterX: ClassVar[MObject] = ...  # type: ignore
    boundingBoxCenterY: ClassVar[MObject] = ...  # type: ignore
    boundingBoxCenterZ: ClassVar[MObject] = ...  # type: ignore
    center: ClassVar[MObject] = ...  # type: ignore
    instObjGroups: ClassVar[MObject] = ...  # type: ignore
    intermediateObject: ClassVar[MObject] = ...  # type: ignore
    inverseMatrix: ClassVar[MObject] = ...  # type: ignore
    isTemplated: ClassVar[MObject] = ...  # type: ignore
    localPosition: ClassVar[MObject] = ...  # type: ignore
    localPositionX: ClassVar[MObject] = ...  # type: ignore
    localPositionY: ClassVar[MObject] = ...  # type: ignore
    localPositionZ: ClassVar[MObject] = ...  # type: ignore
    localScale: ClassVar[MObject] = ...  # type: ignore
    localScaleX: ClassVar[MObject] = ...  # type: ignore
    localScaleY: ClassVar[MObject] = ...  # type: ignore
    localScaleZ: ClassVar[MObject] = ...  # type: ignore
    matrix: ClassVar[MObject] = ...  # type: ignore
    nodeBoundingBox: ClassVar[MObject] = ...  # type: ignore
    nodeBoundingBoxMax: ClassVar[MObject] = ...  # type: ignore
    nodeBoundingBoxMaxX: ClassVar[MObject] = ...  # type: ignore
    nodeBoundingBoxMaxY: ClassVar[MObject] = ...  # type: ignore
    nodeBoundingBoxMaxZ: ClassVar[MObject] = ...  # type: ignore
    nodeBoundingBoxMin: ClassVar[MObject] = ...  # type: ignore
    nodeBoundingBoxMinX: ClassVar[MObject] = ...  # type: ignore
    nodeBoundingBoxMinY: ClassVar[MObject] = ...  # type: ignore
    nodeBoundingBoxMinZ: ClassVar[MObject] = ...  # type: ignore
    nodeBoundingBoxSize: ClassVar[MObject] = ...  # type: ignore
    nodeBoundingBoxSizeX: ClassVar[MObject] = ...  # type: ignore
    nodeBoundingBoxSizeY: ClassVar[MObject] = ...  # type: ignore
    nodeBoundingBoxSizeZ: ClassVar[MObject] = ...  # type: ignore
    objectColor: ClassVar[MObject] = ...  # type: ignore
    objectGroupColor: ClassVar[MObject] = ...  # type: ignore
    objectGroupId: ClassVar[MObject] = ...  # type: ignore
    objectGroups: ClassVar[MObject] = ...  # type: ignore
    objectGrpCompList: ClassVar[MObject] = ...  # type: ignore
    parentInverseMatrix: ClassVar[MObject] = ...  # type: ignore
    parentMatrix: ClassVar[MObject] = ...  # type: ignore
    underWorldObject: ClassVar[MObject] = ...  # type: ignore
    useObjectColor: ClassVar[MObject] = ...  # type: ignore
    visibility: ClassVar[MObject] = ...  # type: ignore
    worldInverseMatrix: ClassVar[MObject] = ...  # type: ignore
    worldMatrix: ClassVar[MObject] = ...  # type: ignore
    worldPosition: ClassVar[MObject] = ...  # type: ignore
    worldPositionX: ClassVar[MObject] = ...  # type: ignore
    worldPositionY: ClassVar[MObject] = ...  # type: ignore
    worldPositionZ: ClassVar[MObject] = ...  # type: ignore
    def __init__(self, *args, **kwargs) -> None: ...
    def boundingBox(self) -> MBoundingBox: ...  # type: ignore
    def closestPoint(self, rayPoint, rayDir) -> MPoint: ...  # type: ignore
    def color(self, status) -> int: ...
    def colorRGB(self, status) -> MColor: ...  # type: ignore
    def draw(self, view, path, style, status) -> self: ...  # type: ignore
    def drawLast(self) -> bool: ...
    def excludeAsLocator(self) -> bool: ...
    def getShapeSelectionMask(self) -> MSelectionMask: ...  # type: ignore
    def isBounded(self) -> bool: ...
    def isTransparent(self) -> bool: ...
    def useClosestPointForSelection(self) -> bool: ...

class MPxManipContainer(MPxNode):  # type: ignore
    def __init__(self, *args, **kwargs) -> None: ...
    def addCircleSweepManip(self, manipName, angleName) -> MDagPath: ...  # type: ignore
    def addCurveSegmentManip(self, manipName, startParamName, endParamName) -> MDagPath: ...  # type: ignore
    def addDirectionManip(self, manipName, directionName) -> MDagPath: ...  # type: ignore
    def addDiscManip(self, manipName, angleName) -> MDagPath: ...  # type: ignore
    def addDistanceManip(self, manipName, distanceName) -> MDagPath: ...  # type: ignore
    def addFreePointTriadManip(self, manipName, pointName) -> MDagPath: ...  # type: ignore
    def addMPxManipulatorNode(self, manipTypeName, manipName, proxyManip) -> None: ...
    @overload
    def addManipToPlugConversion(self, plug) -> unsignedint: ...  # type: ignore
    @overload
    def addManipToPlugConversion(self) -> Any: ...
    @overload
    def addManipToPlugConversion(self) -> Any: ...  # type: ignore
    def addPlugToInViewEditor(self, plug) -> Any: ...
    def addPlugToManipConversion(self, manipIndex) -> Any: ...
    def addPointOnCurveManip(self, manipName, paramName) -> MDagPath: ...  # type: ignore
    def addPointOnSurfaceManip(self, manipName, paramName) -> MDagPath: ...  # type: ignore
    def addRotateManip(self, manipName, rotationName) -> MDagPath: ...  # type: ignore
    def addScaleManip(self, manipName, scaleName) -> MDagPath: ...  # type: ignore
    def addStateManip(self, manipName, stateName) -> MDagPath: ...  # type: ignore
    @staticmethod
    def addToManipConnectTable(typeId) -> Any: ...
    def addToggleManip(self, manipName, toggleName) -> MDagPath: ...  # type: ignore
    def connectToDependNode(self, node) -> None: ...
    def createChildren(self) -> None: ...
    def doDrag(self) -> None: ...
    def doPress(self) -> None: ...
    def doRelease(self) -> None: ...
    def draw(self, view, path, style, status) -> None: ...
    def drawUI(self, drawManager, frameContext) -> None: ...
    def finishAddingManips(self) -> Any: ...
    def getConverterManipDoubleValue(self) -> double: ...  # type: ignore
    def getConverterManipMEulerRotationValue(self) -> MEulereRotation: ...  # type: ignore
    def getConverterManipMMatrixValue(self) -> MMatrix: ...  # type: ignore
    def getConverterManipMPointValue(self) -> MPoint: ...  # type: ignore
    def getConverterManipMTransformationMatrixValue(self) -> MTransformationMatrix: ...  # type: ignore
    def getConverterManipMVectorValue(self) -> MVector: ...  # type: ignore
    def getConverterManipUIntValue(self) -> unsignedint: ...  # type: ignore
    def getConverterManipValues(self, *args, **kwargs): ...
    def getConverterPlugDoubleValue(self) -> double: ...  # type: ignore
    def getConverterPlugMEulerRotationValue(self) -> MEulerRotation: ...  # type: ignore
    def getConverterPlugMMatrixValue(self) -> MMatrix: ...  # type: ignore
    def getConverterPlugMPointValue(self) -> MPoint: ...  # type: ignore
    def getConverterPlugMVectorValue(self) -> MVector: ...  # type: ignore
    def getConverterPlugValues(self, *args, **kwargs): ...
    @staticmethod
    def initialize() -> None: ...
    def isManipActive(self, manipName, stateName) -> MDagPath: ...  # type: ignore
    def manipToPlugConversion(self, manipIndex) -> MManipData: ...
    @staticmethod
    def newManipulator(*args, **kwargs): ...
    def plugToManipConversion(self, manipIndex) -> MManipData: ...
    def preDrawUI(self, view) -> None: ...
    @staticmethod
    def removeFromManipConnectTable(typeId) -> Any: ...

class MPxManipulatorNode(MPxNode):  # type: ignore
    def __init__(self, *args, **kwargs) -> None: ...
    @overload
    def addDependentPlug(self, plug) -> None: ...
    @overload
    def addDependentPlug(self) -> Any: ...
    @overload
    def addDependentPlug(self) -> Any: ...  # type: ignore
    def addDoubleValue(self, valueName, defaultValue) -> int: ...
    def addPointValue(self, valueName, defaultValue) -> int: ...
    def addVectorValue(self, valueName, defaultValue) -> int: ...
    def colorAndName(self, view, glName, glNameIsPickable, colorIndex) -> None: ...
    def connectPlugToValue(self, plug, valueIndex) -> int: ...
    def connectToDependNode(self, node) -> None: ...
    def dependentPlugsReset(self) -> None: ...
    def deregisterForMouseMove(self) -> None: ...
    def dimmedColor(self) -> half: ...  # type: ignore
    def doDrag(self, view) -> None: ...
    def doMove(self, view, refresh) -> None: ...
    def doPress(self, view) -> None: ...
    def doRelease(self, view) -> None: ...
    def draw(self, view, path, style, status) -> None: ...
    def drawUI(self, drawManager, frameContext) -> None: ...
    def finishAddingManips(self) -> None: ...
    def getDoubleValue(self, valueIndex, previousValue) -> float: ...
    def getPointValue(self, valueIndex, previousValue) -> MPoint: ...  # type: ignore
    def getVectorValue(self, valueIndex, previousValue) -> float: ...
    def glActiveName(self) -> MGLuint: ...  # type: ignore
    def glFirstHandle(self) -> MGLuint: ...  # type: ignore
    def labelBackgroundColor(self) -> half: ...  # type: ignore
    def labelColor(self) -> half: ...  # type: ignore
    def lineColor(self) -> half: ...  # type: ignore
    def mainColor(self) -> half: ...  # type: ignore
    def mouseDown(self, *args, **kwargs): ...
    def mousePosition(self, *args, **kwargs): ...
    def mouseRay(self, *args, **kwargs): ...
    def mouseRayWorld(self, *args, **kwargs): ...
    def mouseUp(self, *args, **kwargs): ...
    @staticmethod
    def newManipulator(*args, **kwargs): ...
    def preDrawUI(self, view) -> None: ...
    def prevColor(self) -> half: ...  # type: ignore
    def registerForMouseMove(self) -> None: ...
    def selectedColor(self) -> half: ...  # type: ignore
    def setDoubleValue(self, valueIndex, value) -> None: ...
    def setHandleColor(self, drawManager, handleName, colorIndex) -> None: ...
    def setPointValue(self, valueIndex, value) -> None: ...
    def setVectorValue(self, valueIndex, value) -> None: ...
    def shouldDrawHandleAsSelected(self, name) -> bool: ...
    def xColor(self) -> half: ...  # type: ignore
    def yColor(self) -> half: ...  # type: ignore
    def zColor(self) -> half: ...  # type: ignore

class MPxSelectionContext(MPxContext):
    def __init__(self, *args, **kwargs) -> None: ...
    def abortAction(self) -> None: ...
    def addManipulator(self, manipulator) -> None: ...
    def argTypeNumericalInput(self, index) -> MSyntax.MArgType: ...
    def deleteManipulators(self) -> None: ...
    def doDrag(self, event, drawManager, frameContext) -> None: ...
    def doDragLegacy(self, event) -> None: ...
    def doHold(self, event, drawManager, frameContext) -> None: ...
    def doHoldLegacy(self, event) -> None: ...
    def doPress(self, event, drawManager, frameContext) -> None: ...
    def doPressLegacy(self, event) -> None: ...
    def doRelease(self, event, drawManager, frameContext) -> None: ...
    def doReleaseLegacy(self, event) -> None: ...
    def feedbackNumericalInput(self) -> bool: ...
    def helpStateHasChanged(self, event) -> None: ...
    def image(self, index) -> string: ...  # type: ignore
    def isSelecting(self) -> bool: ...
    def lastDragPoint(self) -> MPoint: ...  # type: ignore
    def newToolCommand(self) -> MPxToolCommand: ...
    def processNumericalInput(self, values, flags, isAbsolute) -> bool: ...
    def setAllowDoubleClickAction(self) -> None: ...
    def setAllowPaintSelect(self) -> None: ...
    def setAllowPreSelectHilight(self) -> None: ...
    def setAllowSoftSelect(self) -> None: ...
    def setAllowSymmetry(self) -> None: ...
    def setImage(self, image, index) -> self: ...  # type: ignore
    def startPoint(self) -> MPoint: ...  # type: ignore

class MPxSurfaceShapeUI:
    kSelectMeshEdges: ClassVar[int] = ...
    kSelectMeshFaces: ClassVar[int] = ...
    kSelectMeshUVs: ClassVar[int] = ...
    kSelectMeshVerts: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def canDrawUV(self) -> bool: ...
    def drawUV(self, view, info) -> self: ...  # type: ignore
    def material(self, path) -> MMaterial: ...
    def materials(self, path, componentFilter, materials, componentSet=...) -> self: ...  # type: ignore
    def select(self, selectInfo, selectionList, worldSpaceSelectPts) -> bool: ...
    def selectUV(self, view, selType, xmin, ymin, xmax, ymax, singleSelect, selList) -> bool: ...
    def snap(self, snapInfo) -> bool: ...
    def surfaceShape(self) -> MPxSurfaceShape: ...  # type: ignore
    @staticmethod
    def surfaceShapeUI(path) -> MPxSurfaceShapeUI: ...

class MPxToolCommand(MPxCommand):  # type: ignore
    def __init__(self, *args, **kwargs) -> None: ...
    def cancel(self) -> None: ...
    def doFinalize(self) -> None: ...
    def doIt(self, *args, **kwargs): ...
    def finalize(self) -> None: ...

class MSelectInfo(MDrawInfo):
    highestPriority: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def addSelection(self, item, point, list, points, mask, isComponent) -> self: ...  # type: ignore
    def getAlignmentMatrix(self) -> MMatrix: ...  # type: ignore
    def getLocalRay(self, *args, **kwargs): ...
    def isRay(self) -> bool: ...
    def selectClosest(self) -> bool: ...
    def selectForHilite(self, mask) -> bool: ...
    def selectOnHilitedOnly(self) -> bool: ...
    def selectPath(self) -> MDagPath: ...  # type: ignore
    def selectRect(self, *args, **kwargs): ...
    def selectable(self, mask) -> bool: ...
    def selectableComponent(self, displayed, mask) -> bool: ...
    @overload
    def setSnapPoint(self, point) -> bool: ...
    @overload
    def setSnapPoint(self) -> Any: ...
    def singleSelection(self) -> bool: ...
    def view(self) -> M3dView: ...

class MTextureEditorDrawInfo:
    kDrawEdgeForSelect: ClassVar[int] = ...
    kDrawEverything: ClassVar[int] = ...
    kDrawFacetForSelect: ClassVar[int] = ...
    kDrawFunctionFirst: ClassVar[int] = ...
    kDrawFunctionLast: ClassVar[int] = ...
    kDrawUVForSelect: ClassVar[int] = ...
    kDrawVertexForSelect: ClassVar[int] = ...
    kDrawWireframe: ClassVar[int] = ...
    drawingFunction: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...

class MTimeSliderCustomDrawManager:
    kAbove: ClassVar[int] = ...
    kBelow: ClassVar[int] = ...
    kOn: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def clearDrawPrimitives(self, *args, **kwargs): ...
    def deregisterCustomDraw(self, *args, **kwargs): ...
    def registerCustomDrawOn(self, *args, **kwargs): ...
    def registerCustomDrawOutside(self, *args, **kwargs): ...
    def requestTimeSliderRedraw(self, *args, **kwargs): ...
    def setBackgroundColor(self, *args, **kwargs): ...
    def setDrawHeight(self, *args, **kwargs): ...
    def setDrawLayer(self, *args, **kwargs): ...
    def setDrawLocation(self, *args, **kwargs): ...
    def setDrawPrimitives(self, *args, **kwargs): ...
    def setDrawPriority(self, *args, **kwargs): ...
    def setDrawVisible(self, *args, **kwargs): ...
    def setEditPrimitiveFunction(self, *args, **kwargs): ...
    def setSetCopyPrimitivesFunction(self, *args, **kwargs): ...
    def setStartPrimitiveEditFunction(self, *args, **kwargs): ...
    def setStopPrimitiveEditFunction(self, *args, **kwargs): ...
    def setTooltip(self, *args, **kwargs): ...

class MTimeSliderDrawPrimitive:
    kBracket: ClassVar[int] = ...
    kFilledRect: ClassVar[int] = ...
    kFrameFlag: ClassVar[int] = ...
    kFullOutline: ClassVar[int] = ...
    kMoveEndTime: ClassVar[int] = ...
    kMovePrimitive: ClassVar[int] = ...
    kMoveStartTime: ClassVar[int] = ...
    kNone: ClassVar[int] = ...
    kUpperOutline: ClassVar[int] = ...
    kVerticalLine: ClassVar[int] = ...
    bottom: Incomplete
    color: Incomplete
    drawType: Incomplete
    endTime: Incomplete
    height: Incomplete
    label: Incomplete
    priority: Incomplete
    startTime: Incomplete
    tooltip: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...

class MUiMessage(MMessage):  # type: ignore
    @staticmethod
    def add3dViewDestroyMsgCallback(panelName, function, clientData=...) -> id: ...  # type: ignore
    @staticmethod
    def add3dViewPostRenderMsgCallback(panelName, function, clientData=...) -> id: ...  # type: ignore
    @staticmethod
    def add3dViewPreRenderMsgCallback(panelName, function, clientData=...) -> id: ...  # type: ignore
    @staticmethod
    def add3dViewRenderOverrideChangedCallback(panelName, function, clientData=...) -> id: ...  # type: ignore
    @staticmethod
    def add3dViewRendererChangedCallback(panelName, function, clientData=...) -> id: ...  # type: ignore
    @staticmethod
    def addCameraChangedCallback(panelName, function, clientData=...) -> id: ...  # type: ignore
    @staticmethod
    def addUiDeletedCallback(uiName, function, clientData=...) -> id: ...  # type: ignore

class RenderParameters:
    baseColor: Incomplete
    showAlphaMask: Incomplete
    unfiltered: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...

class ShaderContext:
    path: Incomplete
    shadingEngine: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
