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: ...
