namespace CaddyManager.Contracts.Caddy;
///
/// Contract for a service that parses Caddy configuration files.
///
public interface ICaddyConfigurationParsingService
{
///
/// Extracts outermost hostname declarations from a Caddyfile content.
/// i.e.
/// ```
/// caddy.domain.name {
/// route {
/// reverse_proxy localhost:8080
/// encode zstd gzip
/// }
/// }
/// ```
/// will return `["caddy.domain.name"]`.
///
///
///
List GetHostnamesFromCaddyfileContent(string caddyfileContent);
///
/// Extracts the reverse proxy target from a Caddyfile content.
///
///
///
string GetReverseProxyTargetFromCaddyfileContent(string caddyfileContent);
///
/// Extracts the ports being used with the reverse proxy host
///
///
///
List GetReverseProxyPortsFromCaddyfileContent(string caddyfileContent);
}