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

import Callbacks as Callbacks
import PyFnAttribute as FnAttribute
import NodegraphAPI_cmodule as NodegraphAPI_cmodule
import PyFnAttribute
import Utils as Utils
import typing
from . import BypassParameterManager as BypassParameterManager, CallbackTypes as CallbackTypes, Constants as Constants, DynamicParameters as DynamicParameters, ExpressionModule as ExpressionModule, Flavor as Flavor, GroupStack as GroupStack, InteractiveRenderFilters as InteractiveRenderFilters, LiveGroup as LiveGroup, NodeDelegateManager as NodeDelegateManager, NodeExtensions as NodeExtensions, NodeGraphViewExtensions as NodeGraphViewExtensions, NodeNameFromParamManager as NodeNameFromParamManager, NodeXmlIO as NodeXmlIO, NodegraphChangedEvents as NodegraphChangedEvents, NodegraphGlobals as NodegraphGlobals, ParameterValueOption as ParameterValueOption, RenderFilter as RenderFilter, RenderScript as RenderScript, StructuredPorts as StructuredPorts, UserParameters as UserParameters, Util as Util, Version as Version, Xio as Xio
from NodegraphAPI.DynamicParameters import CreateGroupParameter as CreateGroupParameter, CreateNumberParameter as CreateNumberParameter, CreateStringParameter as CreateStringParameter, DeleteParameter as DeleteParameter
from NodegraphAPI.ExpressionModule import FCurveLookup as FCurveLookup, GetExpressionGlobalValue as GetExpressionGlobalValue, SetExpressionGlobalValue as SetExpressionGlobalValue, SetupExpressionGlobalScopeFromRootNode as SetupExpressionGlobalScopeFromRootNode
from NodegraphAPI.Flavor import AddNodeFlavor as AddNodeFlavor, ClearFlavorNodes as ClearFlavorNodes, GetAllFlavors as GetAllFlavors, GetFlavorNodes as GetFlavorNodes, GetNodeFlavors as GetNodeFlavors, NodeMatchesFlavors as NodeMatchesFlavors, RemoveNodeFlavor as RemoveNodeFlavor
from NodegraphAPI.LiveGroup import AssetPublishing as AssetPublishing, CalculateLiveGroupDepth as CalculateLiveGroupDepth, CanBeDifferentFromSource as CanBeDifferentFromSource, ConvertGroupToLiveGroup as ConvertGroupToLiveGroup, IsLiveGroupCachingEnabled as IsLiveGroupCachingEnabled, IsLiveGroupLoadingEnabled as IsLiveGroupLoadingEnabled, LiveGroupNode as LiveGroupNode, LoadAllLiveGroups as LoadAllLiveGroups, LockAllLiveGroups as LockAllLiveGroups, MakeAllLiveGroupsEditable as MakeAllLiveGroupsEditable, MakeAllParentLiveGroupsEditable as MakeAllParentLiveGroupsEditable, SetLiveGroupCachingEnabled as SetLiveGroupCachingEnabled, SetLiveGroupLoadingEnabled as SetLiveGroupLoadingEnabled, UpdateAllLiveGroupSources as UpdateAllLiveGroupSources
from NodegraphAPI.NodeExtensions import DeleteNodeShapeAttr as DeleteNodeShapeAttr, GetAllActiveAttributeEditorNodes as GetAllActiveAttributeEditorNodes, GetAllEditedNodes as GetAllEditedNodes, GetAllFloatingNodes as GetAllFloatingNodes, GetAllSelectedNodes as GetAllSelectedNodes, GetAllSelectedNodesAndParent as GetAllSelectedNodesAndParent, GetAllThumbnailEnabledNodes as GetAllThumbnailEnabledNodes, GetMenuPath as GetMenuPath, GetNodeComment as GetNodeComment, GetNodeModTime as GetNodeModTime, GetNodeParameter as GetNodeParameter, GetNodePosition as GetNodePosition, GetNodeShapeAttr as GetNodeShapeAttr, GetNodeShapeAttrs as GetNodeShapeAttrs, GetViewNode as GetViewNode, GetViewNodes as GetViewNodes, GetViewPortPosition as GetViewPortPosition, IsAttributeEditorNodeActive as IsAttributeEditorNodeActive, IsNodeEdited as IsNodeEdited, IsNodeFloating as IsNodeFloating, IsNodeHidden as IsNodeHidden, IsNodeLockedByParents as IsNodeLockedByParents, IsNodeSelected as IsNodeSelected, IsNodeThumbnailEnabled as IsNodeThumbnailEnabled, IsNodeViewed as IsNodeViewed, Register_NewNode_CB as Register_NewNode_CB, SetAllSelectedNodes as SetAllSelectedNodes, SetAttributeEditorNodeActive as SetAttributeEditorNodeActive, SetMenuPath as SetMenuPath, SetNodeComment as SetNodeComment, SetNodeEdited as SetNodeEdited, SetNodeFloating as SetNodeFloating, SetNodeHidden as SetNodeHidden, SetNodeModTime as SetNodeModTime, SetNodeParameter as SetNodeParameter, SetNodePosition as SetNodePosition, SetNodeSelected as SetNodeSelected, SetNodeShapeAttr as SetNodeShapeAttr, SetNodeShapeNodeAttrs as SetNodeShapeNodeAttrs, SetNodeThumbnailEnabled as SetNodeThumbnailEnabled, SetNodeViewed as SetNodeViewed, SetViewPortPosition as SetViewPortPosition
from NodegraphAPI.NodeXmlIO import BuildNodegraphXmlIO as BuildNodegraphXmlIO, BuildNodesXmlIO as BuildNodesXmlIO, GetUserNodesXmlRootAttrs as GetUserNodesXmlRootAttrs, LoadElementsFromFile as LoadElementsFromFile, LoadElementsFromString as LoadElementsFromString, ParseNodegraphXmlIO as ParseNodegraphXmlIO, ParseNodesXmlIO as ParseNodesXmlIO, SetUserNodesXmlRootAttrs as SetUserNodesXmlRootAttrs
from NodegraphAPI.NodegraphGlobals import CheckNodeType as CheckNodeType, GetAutoKeyAll as GetAutoKeyAll, GetCurrentTime as GetCurrentTime, GetInTime as GetInTime, GetKatanaSceneName as GetKatanaSceneName, GetNodegraphVersionString as GetNodegraphVersionString, GetOriginalProjectAssetID as GetOriginalProjectAssetID, GetOriginalSourceFile as GetOriginalSourceFile, GetOutTime as GetOutTime, GetProjectAssetID as GetProjectAssetID, GetProjectDir as GetProjectDir, GetProjectFile as GetProjectFile, GetRootNode as GetRootNode, GetSourceFile as GetSourceFile, GetTimeIncrement as GetTimeIncrement, GetWorkingInTime as GetWorkingInTime, GetWorkingOutTime as GetWorkingOutTime, IsLoading as IsLoading, IsLoadingAsync as IsLoadingAsync, LoadXmlFromFile as LoadXmlFromFile, LoadXmlFromString as LoadXmlFromString, NeedsRedraw as NeedsRedraw, NewNodegraph as NewNodegraph, ResetAllFloatingCurves as ResetAllFloatingCurves, SetAutoKeyAll as SetAutoKeyAll, SetCurrentTime as SetCurrentTime, SetInTime as SetInTime, SetKatanaSceneName as SetKatanaSceneName, SetNeedsRedraw as SetNeedsRedraw, SetOriginalProjectAssetID as SetOriginalProjectAssetID, SetOriginalSourceFile as SetOriginalSourceFile, SetOutTime as SetOutTime, SetProjectAssetID as SetProjectAssetID, SetRootNode as SetRootNode, SetSourceFile as SetSourceFile, SetTimeIncrement as SetTimeIncrement, SetWorkingInTime as SetWorkingInTime, SetWorkingOutTime as SetWorkingOutTime, UpdatePluginsFromGlobals as UpdatePluginsFromGlobals, WriteKatanaFile as WriteKatanaFile, WriteKatanaString as WriteKatanaString
from NodegraphAPI.PythonRenderScript import PythonRenderScript as PythonRenderScript
from NodegraphAPI.SuperTool import RegisterSuperTool as RegisterSuperTool, SuperTool as SuperTool
from NodegraphAPI_cmodule import Context as Context, GetAllExpressionedParameters as GetAllExpressionedParameters, GetExpressionReferences as GetExpressionReferences, GetNodeGraphContext as GetNodeGraphContext, GraphState as GraphState, GraphStateBuilder as GraphStateBuilder, GroupNode as GroupNode, Node as Node, Parameter as Parameter, Port as Port, PythonGroupNode as PythonGroupNode, PythonNode as PythonNode
from _typeshed import Incomplete
from typing import Set, Tuple

NodeGraphContextParameter: str
RTLD_GLOBAL: int
RTLD_NOW: int
_IsInSynchronousContext: bool
_isNodegraphLoading: bool
useFlags: bool

def AreEventsEnabled(): ...
def AsynchronousContext(): ...
def BuildAttrFromGroupParameter(parameter: Parameter, graphState: typing.Optional[GraphState] = ..., multisampleDefault: bool = ..., numberAttrTypeDefault: type[PyFnAttribute.FloatAttribute] = ..., includeEmptyGroups: bool = ..., groupInherit: bool = ...) -> PyFnAttribute.GroupAttribute | None: ...
def BuildAttrFromNumberParameter(parameter: Parameter, graphState: typing.Optional[GraphState] = ..., multisample: bool = ..., attrType: type[PyFnAttribute.FloatAttribute] = ...) -> attrType | None: ...
def BuildAttrFromStringParameter(parameter: Parameter, graphState: typing.Optional[GraphState] = ..., multisample: bool = ...) -> PyFnAttribute.StringAttribute | None: ...
def BuildDoubleAttrFromNumberParameter(parameter: Parameter, graphState: typing.Optional[GraphState] = ..., multisample: bool = ...) -> PyFnAttribute.DoubleAttribute | None: ...
def BuildFloatAttrFromNumberParameter(parameter: Parameter, graphState: typing.Optional[GraphState] = ..., multisample: bool = ...) -> PyFnAttribute.FloatAttribute | None: ...
def BuildIntAttrFromNumberParameter(parameter: Parameter, graphState: typing.Optional[GraphState] = ..., multisample: bool = ...) -> PyFnAttribute.IntAttribute | None: ...
def CreateNode(type: str, parent: Incomplete | None = ...) -> Node: ...
def GetAllNodes(includeDeleted: bool = ..., sortByName: bool = ...) -> list[Node]: ...
def GetAllNodesByType(nodeType: str, includeDeleted: bool = ..., sortByName: bool = ...) -> list[Node]: ...
def GetCurrentGraphState(**kwargs): ...
def GetGraphState(timeval: float, **kwargs) -> GraphState: ...
def GetGraphStateAtPort(searchPort: Port, startPort: Port, startGraphState: GraphState) -> GraphState | None: ...
def GetNode(nodeName: str) -> Node | None: ...
def GetNodeContext(node: Node): ...
def GetNodeTypes() -> list[str]: ...
def GetSampleTimes(shutterOpen: float, shutterClose: float, maxTimeSamples: int, useSinglePrecision: bool = ...) -> tuple[float, ...]: ...
def GetSampleTimesFromGraphState(graphState: GraphState, useSinglePrecision: bool = ...) -> tuple[float, ...]: ...
def GetSingleSampleTimeFromGraphState(graphState: GraphState) -> float: ...
def InteractiveContext(): ...
def IsInSynchronousContext() -> bool: ...
def IsParameterConstant(parameter: Parameter) -> bool: ...
def NonInteractiveContext(): ...
def PopExpressionCache(): ...
def PushExpressionCache(): ...
def RegisterExtension(ext): ...
def RegisterPythonGroupType(type: str, ctor): ...
def RegisterPythonNodeFactory(type: str, factory: typing.Callable): ...
def RegisterPythonNodeType(type: str, ctor): ...
def SetEventsEnabled(state: int): ...
def StackedLocalGraphState(graphState: GraphState) -> None: ...
def SynchronousContext(): ...
def UnlockedNode(): ...
def __loadBeginCallback(eventType, eventID, **kwargs): ...
def __loadEndCallback(eventType, eventID, **kwargs): ...
def __nodeCreateCallback(eventType, eventID, **kwargs): ...
def __nodeDeleteCallback(eventType, eventID, **kwargs): ...
