"""
This type stub file was generated by pyright.
"""

from typing import Any, NamedTuple, TYPE_CHECKING
from docutils import nodes
from sphinx import addnodes
from sphinx.domains import Domain
from sphinx.util.docutils import SphinxDirective
from docutils.nodes import Node
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
from sphinx.util.typing import OptionSpec

"""The changeset domain."""
if TYPE_CHECKING:
    ...
versionlabels = ...
versionlabel_classes = ...
class ChangeSet(NamedTuple):
    type: str
    docname: str
    lineno: int
    module: str | None
    descname: str | None
    content: str
    ...


class VersionChange(SphinxDirective):
    """
    Directive to describe a change/addition/deprecation in a specific version.
    """
    has_content = ...
    required_arguments = ...
    optional_arguments = ...
    final_argument_whitespace = ...
    option_spec: OptionSpec = ...
    def run(self) -> list[Node]:
        ...
    


class ChangeSetDomain(Domain):
    """Domain for changesets."""
    name = ...
    label = ...
    initial_data: dict[str, Any] = ...
    @property
    def changesets(self) -> dict[str, list[ChangeSet]]:
        ...
    
    def note_changeset(self, node: addnodes.versionmodified) -> None:
        ...
    
    def clear_doc(self, docname: str) -> None:
        ...
    
    def merge_domaindata(self, docnames: list[str], otherdata: dict[str, Any]) -> None:
        ...
    
    def process_doc(self, env: BuildEnvironment, docname: str, document: nodes.document) -> None:
        ...
    
    def get_changesets_for(self, version: str) -> list[ChangeSet]:
        ...
    


def setup(app: Sphinx) -> dict[str, Any]:
    ...

