"""
Type annotations for botocore.response module.

Copyright 2025 Vlad Emelianov
"""

import logging
from collections.abc import Iterator
from io import IOBase
from typing import IO, Any

import requests
from botocore.model import OperationModel

logger: logging.Logger

class StreamingBody(IOBase):
    def __init__(self, raw_stream: IO[bytes], content_length: int) -> None: ...
    def set_socket_timeout(self, timeout: float) -> None: ...
    def readable(self) -> bool: ...
    def read(self, amt: int | None = ...) -> bytes: ...
    def readinto(self, b: IO[bytes]) -> int: ...
    # FIXME: Signature of "readlines" incompatible with supertype "IOBase"
    def readlines(self) -> list[bytes]: ...  # type: ignore [override]
    def __iter__(self) -> Iterator[bytes]: ...
    def iter_lines(self, chunk_size: int = ..., keepends: bool = ...) -> Iterator[bytes]: ...
    def iter_chunks(self, chunk_size: int = ...) -> Iterator[bytes]: ...
    def tell(self) -> int: ...
    def close(self) -> None: ...
    def next(self) -> bytes: ...

def get_response(
    operation_model: OperationModel, http_response: requests.Response
) -> tuple[requests.Response, Any]: ...
