async def METHOD_NAME(
    self, destination: ConnectionDestination
) -> List[CompanionInfo]:
    async with self._use_stored_companions() as companions:
        if isinstance(destination, str):
            to_remove = [
                companion
                for companion in companions
                if companion.udid == destination
            ]
        elif isinstance(destination, TCPAddress):
            to_remove = [
                companion
                for companion in companions
                if (
                    isinstance(companion.address, TCPAddress)
                    and companion.address.host == destination.host
                    and companion.address.port == destination.port
                )
            ]
        elif isinstance(destination, DomainSocketAddress):
            to_remove = [
                companion
                for companion in companions
                if (
                    isinstance(companion.address, DomainSocketAddress)
                    and companion.address.path == destination.path
                )
            ]
        for companion in to_remove:
            companions.remove(companion)
        # pyre-fixme[61]: `to_remove` may not be initialized here.
        return to_remove