package promtail

type Level uint8

const (
	Debug Level = 0
	Info  Level = 1
	Warn  Level = 2
	Error Level = 3
	Fatal Level = 4
	Panic Level = 5
)

func ( Level) () string {
	switch  {
	case Debug:
		return "DEBUG"
	case Info:
		return "INFO"
	case Warn:
		return "WARN"
	case Error:
		return "ERROR"
	case Fatal:
		return "FATAL"
	case Panic:
		return "PANIC"

	}
	return "unknown"
}

type Client interface {
	Logf(level Level, format string, args ...interface{})
	LogfWithLabels(level Level, labels map[string]string, format string, args ...interface{})

	Debugf(format string, args ...interface{})
	Infof(format string, args ...interface{})
	Warnf(format string, args ...interface{})
	Errorf(format string, args ...interface{})
	Fatalf(format string, args ...interface{})
	Panicf(format string, args ...interface{})

	Ping() (*PongResponse, error)

	Close()
}

type PongResponse struct {
	IsReady bool
}