using Grpc.Core;
using MxGateway.Contracts.Proto.Galaxy;
namespace MxGateway.Client;
/// Transport layer for Galaxy Repository gRPC operations.
internal interface IGalaxyRepositoryClientTransport
{
/// Gets the client options used to configure this transport.
MxGatewayClientOptions Options { get; }
/// Gets the underlying gRPC client, or null if not yet initialized.
GalaxyRepository.GalaxyRepositoryClient? RawClient { get; }
/// Tests the connection to the Galaxy Repository server.
/// The test connection request.
/// gRPC call options (timeout, cancellation, etc.).
Task TestConnectionAsync(
TestConnectionRequest request,
CallOptions callOptions);
/// Gets the last deploy time from the Galaxy Repository server.
/// The get last deploy time request.
/// gRPC call options (timeout, cancellation, etc.).
Task GetLastDeployTimeAsync(
GetLastDeployTimeRequest request,
CallOptions callOptions);
/// Discovers the object hierarchy in the Galaxy Repository.
/// The discover hierarchy request.
/// gRPC call options (timeout, cancellation, etc.).
Task DiscoverHierarchyAsync(
DiscoverHierarchyRequest request,
CallOptions callOptions);
/// Watches for deployment events from the Galaxy Repository server.
/// The watch deploy events request.
/// gRPC call options (timeout, cancellation, etc.).
IAsyncEnumerable WatchDeployEventsAsync(
WatchDeployEventsRequest request,
CallOptions callOptions);
}