from _typeshed import Unused
from collections.abc import Iterable
from typing import Any

from asgiref.typing import HTTPDisconnectEvent, HTTPRequestEvent, HTTPScope
from channels.consumer import AsyncConsumer

class AsyncHttpConsumer(AsyncConsumer):
    body: list[bytes]
    scope: HTTPScope  # type: ignore[assignment]

    def __init__(self, *args: Unused, **kwargs: Unused) -> None: ...
    async def send_headers(self, *, status: int = 200, headers: Iterable[tuple[bytes, bytes]] | None = None) -> None: ...
    async def send_body(self, body: bytes, *, more_body: bool = False) -> None: ...
    async def send_response(self, status: int, body: bytes, **kwargs: Any) -> None: ...
    async def handle(self, body: bytes) -> None: ...
    async def disconnect(self) -> None: ...
    async def http_request(self, message: HTTPRequestEvent) -> None: ...
    async def http_disconnect(self, message: HTTPDisconnectEvent) -> None: ...
