using CashLineERP.Contracts.Tax;

namespace CashLineERP.Application.Tax;

public interface IEtaAuthorityAuthService
{
    EtaAuthorityAuthHealthResponse GetHealth();

    EtaAuthorityEndpointSelection? GetSubmissionEndpoint();

    EtaAuthorityEndpointSelection? GetSubmissionStatusEndpoint();

    EtaAuthorityEndpointSelection? GetCallbackPingEndpoint();

    EtaAuthorityEndpointSelection? GetDocumentNotificationEndpoint();

    string? ResolveCallbackPingSharedSecret();

    string? ResolveDocumentNotificationSharedSecret();

    Task<EtaAuthorityAccessToken> AcquireAccessTokenAsync(CancellationToken cancellationToken = default);
}
