from ...types import ObjectType as ObjectType, Schema as Schema, String as String
from ..connection import Connection as Connection, ConnectionField as ConnectionField, PageInfo as PageInfo
from ..node import Node as Node
from typing import Any

letter_chars: Any

class Letter(ObjectType):
    class Meta:
        interfaces: Any = ...
    letter: Any = ...

class LetterConnection(Connection):
    class Meta:
        node: Any = ...

class Query(ObjectType):
    letters: Any = ...
    connection_letters: Any = ...
    promise_letters: Any = ...
    node: Any = ...
    def resolve_letters(self, info: Any, **args: Any) -> Any: ...
    def resolve_promise_letters(self, info: Any, **args: Any) -> Any: ...
    def resolve_connection_letters(self, info: Any, **args: Any) -> Any: ...

schema: Any
letters: Any

def edges(selected_letters: Any) -> Any: ...
def cursor_for(ltr: Any) -> Any: ...
def execute(args: str = ...) -> Any: ...
def check(args: Any, letters: Any, has_previous_page: bool = ..., has_next_page: bool = ...) -> None: ...
def test_returns_all_elements_without_filters() -> None: ...
def test_respects_a_smaller_first() -> None: ...
def test_respects_an_overly_large_first() -> None: ...
def test_respects_a_smaller_last() -> None: ...
def test_respects_an_overly_large_last() -> None: ...
def test_respects_first_and_after() -> None: ...
def test_respects_first_and_after_with_long_first() -> None: ...
def test_respects_last_and_before() -> None: ...
def test_respects_last_and_before_with_long_last() -> None: ...
def test_respects_first_and_after_and_before_too_few() -> None: ...
def test_respects_first_and_after_and_before_too_many() -> None: ...
def test_respects_first_and_after_and_before_exactly_right() -> None: ...
def test_respects_last_and_after_and_before_too_few() -> None: ...
def test_respects_last_and_after_and_before_too_many() -> None: ...
def test_respects_last_and_after_and_before_exactly_right() -> None: ...
def test_returns_no_elements_if_first_is_0() -> None: ...
def test_returns_all_elements_if_cursors_are_invalid() -> None: ...
def test_returns_all_elements_if_cursors_are_on_the_outside() -> None: ...
def test_returns_no_elements_if_cursors_cross() -> None: ...
def test_connection_type_nodes() -> None: ...
def test_connection_promise() -> None: ...
