"""
Type annotations for botocore.retries.bucket module.

Copyright 2025 Vlad Emelianov
"""

from botocore.exceptions import CapacityNotAvailableError as CapacityNotAvailableError

class Clock:
    def __init__(self) -> None: ...
    def sleep(self, amount: float) -> None: ...
    def current_time(self) -> float: ...

class TokenBucket:
    def __init__(self, max_rate: float, clock: Clock, min_rate: float = ...) -> None: ...
    @property
    def max_rate(self) -> float: ...
    @max_rate.setter
    def max_rate(self, value: float) -> None: ...
    @property
    def max_capacity(self) -> int: ...
    @property
    def available_capacity(self) -> int: ...
    def acquire(self, amount: int = ..., block: bool = ...) -> bool: ...
