from typing import overload

from supriya.contexts.entities import Bus as Bus
from supriya.contexts.entities import BusGroup as BusGroup

class ServerSHM:
    def __init__(self, port_number: int, bus_count: int) -> None: ...
    def describe_scope_buffer(self, index: int) -> tuple[int, int]: ...
    def read_scope_buffer(self, index: int) -> tuple[int, list[float]]: ...
    @overload
    def __getitem__(self, item: Bus | int) -> float: ...
    @overload
    def __getitem__(self, item: BusGroup | slice) -> list[float]: ...
    @overload
    def __setitem__(self, item: Bus | int, value: float) -> None: ...
    @overload
    def __setitem__(self, item: BusGroup | slice, value: list[float]) -> None: ...
