from ...types import (
    Argument as Argument,
    Field as Field,
    ID as ID,
    InputField as InputField,
    InputObjectType as InputObjectType,
    NonNull as NonNull,
    ObjectType as ObjectType,
    Schema as Schema,
)
from ...types.scalars import String as String
from ..mutation import ClientIDMutation as ClientIDMutation
from typing import Any, Optional

class SharedFields:
    shared: Any = ...

class MyNode(ObjectType):
    id: Any = ...
    name: Any = ...

class SaySomething(ClientIDMutation):
    class Input:
        what: Any = ...
    phrase: Any = ...
    @staticmethod
    def mutate_and_get_payload(
        self, info: Any, what: Any, client_mutation_id: Optional[Any] = ...
    ) -> Any: ...

class FixedSaySomething:
    phrase: Any = ...
    def __init__(self, phrase: Any) -> None: ...

class SaySomethingFixed(ClientIDMutation):
    class Input:
        what: Any = ...
    phrase: Any = ...
    @staticmethod
    def mutate_and_get_payload(
        self, info: Any, what: Any, client_mutation_id: Optional[Any] = ...
    ) -> Any: ...

class SaySomethingPromise(ClientIDMutation):
    class Input:
        what: Any = ...
    phrase: Any = ...
    @staticmethod
    def mutate_and_get_payload(
        self, info: Any, what: Any, client_mutation_id: Optional[Any] = ...
    ) -> Any: ...

class MyEdge(ObjectType):
    node: Any = ...
    cursor: Any = ...

class OtherMutation(ClientIDMutation):
    class Input(SharedFields):
        additional_field: Any = ...
    name: Any = ...
    my_node_edge: Any = ...
    @staticmethod
    def mutate_and_get_payload(
        self,
        info: Any,
        shared: str = ...,
        additional_field: str = ...,
        client_mutation_id: Optional[Any] = ...,
    ) -> Any: ...

class RootQuery(ObjectType):
    something: Any = ...

class Mutation(ObjectType):
    say: Any = ...
    say_fixed: Any = ...
    say_promise: Any = ...
    other: Any = ...

schema: Any

def test_no_mutate_and_get_payload() -> None: ...
def test_mutation() -> None: ...
def test_mutation_input() -> None: ...
def test_subclassed_mutation() -> None: ...
def test_subclassed_mutation_input() -> None: ...
def test_node_query() -> None: ...
def test_node_query_fixed() -> None: ...
def test_node_query_promise() -> None: ...
def test_edge_query() -> None: ...
