package p.studio.debug.runtime;

import p.studio.execution.StudioExecutionSessionService;

public interface StudioRuntimeHandshakeClient {
    StudioRuntimeHandshakeResult connect(final StudioExecutionSessionService session);

    StudioRuntimeHandshakeResult connect(
            final StudioExecutionSessionService session,
            final StudioRuntimeDebugConnectionSettings settings);

    StudioRuntimeHandshakeResult connectWithRetry(
            final StudioExecutionSessionService session,
            final StudioRuntimeDebugConnectionSettings settings,
            final int maxAttempts,
            final long retryDelayMillis);

    void disconnect(final StudioExecutionSessionService session);
}
