class CompanionProxyShard implements Closeable {

    @MainThread
    @Override  // Closable
    public void close() {
        DebugAssert.isMainThread();
        if (mIsClosed) {
            Log.w(TAG, logInstance() + "Already closed");
            return;
        }
        updateAndNotify(SysproxyNetworkState.DISCONNECTED, Reason.CLOSABLE);
        // notify mListener of our intended disconnect before setting mIsClosed to true
        mIsClosed = true;
        disconnectNativeInBackground();
        mHandler.removeMessages(WHAT_START_SYSPROXY);
        maybeLogDebug("Closed companion proxy shard");
    }

    public  CompanionProxyShard(
            @NonNull final Context context,
            @NonNull final ProxyServiceHelper proxyServiceHelper,
            @NonNull final BluetoothDevice companionDevice,
            @NonNull final Listener listener,
            final int networkScore);

}