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

import PyUtilModule.IRFs as IRFs
import NodegraphAPI as NodegraphAPI
import NodegraphAPI.RenderFilter
from typing import Set, Tuple

class Delegate:
    def accepts(self, node: NodegraphAPI.Node, renderItem): ...
    def begin(self, node: NodegraphAPI.Node, renderItem): ...
    def end(self, node: NodegraphAPI.Node, renderItem, blindData): ...

class IrfException(Exception): ...

class RenderFiltersDelegate(Delegate):
    def accepts(self, node: NodegraphAPI.Node, renderItem): ...
    def begin(self, node: NodegraphAPI.Node, renderItem): ...
    def end(self, node: NodegraphAPI.Node, renderItem, blindData): ...
    def getActiveRenderFilterNodes(self) -> list[NodegraphAPI.RenderFilter.RenderFilterNode]: ...
    def setActiveRenderFilterNodes(self, nodes: list[NodegraphAPI.RenderFilter.RenderFilterNode]): ...

def GetRenderFiltersDelegate(): ...
def RegisterDelegate(nodeType, delegate): ...
def RenderPreprocessBegin(renderItem): ...
def RenderPreprocessEnd(renderItem, blindData): ...
