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