// @generated by protoc-gen-es v2.11.0 with parameter "target=js+dts"
// @generated from file monitoring.proto (package monitoring, syntax proto3)
/* eslint-disable */

import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file monitoring.proto.
 */
export declare const file_monitoring: GenFile;

/**
 * @generated from message monitoring.GetSystemStatusRequest
 */
export declare type GetSystemStatusRequest = Message<"monitoring.GetSystemStatusRequest"> & {
  /**
   * @generated from field: repeated string service_names = 1;
   */
  serviceNames: string[];
};

/**
 * Describes the message monitoring.GetSystemStatusRequest.
 * Use `create(GetSystemStatusRequestSchema)` to create a new message.
 */
export declare const GetSystemStatusRequestSchema: GenMessage<GetSystemStatusRequest>;

/**
 * @generated from message monitoring.GetSystemStatusResponse
 */
export declare type GetSystemStatusResponse = Message<"monitoring.GetSystemStatusResponse"> & {
  /**
   * @generated from field: monitoring.SystemStatus overall_status = 1;
   */
  overallStatus?: SystemStatus;

  /**
   * @generated from field: repeated monitoring.ServiceStatus service_statuses = 2;
   */
  serviceStatuses: ServiceStatus[];

  /**
   * @generated from field: int64 timestamp = 3;
   */
  timestamp: bigint;
};

/**
 * Describes the message monitoring.GetSystemStatusResponse.
 * Use `create(GetSystemStatusResponseSchema)` to create a new message.
 */
export declare const GetSystemStatusResponseSchema: GenMessage<GetSystemStatusResponse>;

/**
 * @generated from message monitoring.StreamSystemStatusRequest
 */
export declare type StreamSystemStatusRequest = Message<"monitoring.StreamSystemStatusRequest"> & {
  /**
   * @generated from field: repeated string service_names = 1;
   */
  serviceNames: string[];

  /**
   * @generated from field: optional int32 update_frequency_seconds = 2;
   */
  updateFrequencySeconds?: number;
};

/**
 * Describes the message monitoring.StreamSystemStatusRequest.
 * Use `create(StreamSystemStatusRequestSchema)` to create a new message.
 */
export declare const StreamSystemStatusRequestSchema: GenMessage<StreamSystemStatusRequest>;

/**
 * @generated from message monitoring.GetHealthCheckRequest
 */
export declare type GetHealthCheckRequest = Message<"monitoring.GetHealthCheckRequest"> & {
  /**
   * @generated from field: optional string service_name = 1;
   */
  serviceName?: string;
};

/**
 * Describes the message monitoring.GetHealthCheckRequest.
 * Use `create(GetHealthCheckRequestSchema)` to create a new message.
 */
export declare const GetHealthCheckRequestSchema: GenMessage<GetHealthCheckRequest>;

/**
 * @generated from message monitoring.GetHealthCheckResponse
 */
export declare type GetHealthCheckResponse = Message<"monitoring.GetHealthCheckResponse"> & {
  /**
   * @generated from field: monitoring.HealthStatus health_status = 1;
   */
  healthStatus: HealthStatus;

  /**
   * @generated from field: repeated monitoring.HealthCheck health_checks = 2;
   */
  healthChecks: HealthCheck[];

  /**
   * @generated from field: int64 timestamp = 3;
   */
  timestamp: bigint;
};

/**
 * Describes the message monitoring.GetHealthCheckResponse.
 * Use `create(GetHealthCheckResponseSchema)` to create a new message.
 */
export declare const GetHealthCheckResponseSchema: GenMessage<GetHealthCheckResponse>;

/**
 * @generated from message monitoring.GetMetricsRequest
 */
export declare type GetMetricsRequest = Message<"monitoring.GetMetricsRequest"> & {
  /**
   * @generated from field: repeated string metric_names = 1;
   */
  metricNames: string[];

  /**
   * @generated from field: optional int64 start_time = 2;
   */
  startTime?: bigint;

  /**
   * @generated from field: optional int64 end_time = 3;
   */
  endTime?: bigint;

  /**
   * @generated from field: optional monitoring.MetricAggregation aggregation = 4;
   */
  aggregation?: MetricAggregation;
};

/**
 * Describes the message monitoring.GetMetricsRequest.
 * Use `create(GetMetricsRequestSchema)` to create a new message.
 */
export declare const GetMetricsRequestSchema: GenMessage<GetMetricsRequest>;

/**
 * @generated from message monitoring.GetMetricsResponse
 */
export declare type GetMetricsResponse = Message<"monitoring.GetMetricsResponse"> & {
  /**
   * @generated from field: repeated monitoring.Metric metrics = 1;
   */
  metrics: Metric[];

  /**
   * @generated from field: int64 timestamp = 2;
   */
  timestamp: bigint;
};

/**
 * Describes the message monitoring.GetMetricsResponse.
 * Use `create(GetMetricsResponseSchema)` to create a new message.
 */
export declare const GetMetricsResponseSchema: GenMessage<GetMetricsResponse>;

/**
 * @generated from message monitoring.StreamMetricsRequest
 */
export declare type StreamMetricsRequest = Message<"monitoring.StreamMetricsRequest"> & {
  /**
   * @generated from field: repeated string metric_names = 1;
   */
  metricNames: string[];

  /**
   * @generated from field: optional int32 update_frequency_seconds = 2;
   */
  updateFrequencySeconds?: number;
};

/**
 * Describes the message monitoring.StreamMetricsRequest.
 * Use `create(StreamMetricsRequestSchema)` to create a new message.
 */
export declare const StreamMetricsRequestSchema: GenMessage<StreamMetricsRequest>;

/**
 * @generated from message monitoring.GetLatencyMetricsRequest
 */
export declare type GetLatencyMetricsRequest = Message<"monitoring.GetLatencyMetricsRequest"> & {
  /**
   * @generated from field: optional string service_name = 1;
   */
  serviceName?: string;

  /**
   * @generated from field: optional string operation_name = 2;
   */
  operationName?: string;

  /**
   * @generated from field: optional int64 start_time = 3;
   */
  startTime?: bigint;

  /**
   * @generated from field: optional int64 end_time = 4;
   */
  endTime?: bigint;
};

/**
 * Describes the message monitoring.GetLatencyMetricsRequest.
 * Use `create(GetLatencyMetricsRequestSchema)` to create a new message.
 */
export declare const GetLatencyMetricsRequestSchema: GenMessage<GetLatencyMetricsRequest>;

/**
 * @generated from message monitoring.GetLatencyMetricsResponse
 */
export declare type GetLatencyMetricsResponse = Message<"monitoring.GetLatencyMetricsResponse"> & {
  /**
   * @generated from field: repeated monitoring.LatencyMetric latency_metrics = 1;
   */
  latencyMetrics: LatencyMetric[];
};

/**
 * Describes the message monitoring.GetLatencyMetricsResponse.
 * Use `create(GetLatencyMetricsResponseSchema)` to create a new message.
 */
export declare const GetLatencyMetricsResponseSchema: GenMessage<GetLatencyMetricsResponse>;

/**
 * @generated from message monitoring.GetThroughputMetricsRequest
 */
export declare type GetThroughputMetricsRequest = Message<"monitoring.GetThroughputMetricsRequest"> & {
  /**
   * @generated from field: optional string service_name = 1;
   */
  serviceName?: string;

  /**
   * @generated from field: optional string operation_name = 2;
   */
  operationName?: string;

  /**
   * @generated from field: optional int64 start_time = 3;
   */
  startTime?: bigint;

  /**
   * @generated from field: optional int64 end_time = 4;
   */
  endTime?: bigint;
};

/**
 * Describes the message monitoring.GetThroughputMetricsRequest.
 * Use `create(GetThroughputMetricsRequestSchema)` to create a new message.
 */
export declare const GetThroughputMetricsRequestSchema: GenMessage<GetThroughputMetricsRequest>;

/**
 * @generated from message monitoring.GetThroughputMetricsResponse
 */
export declare type GetThroughputMetricsResponse = Message<"monitoring.GetThroughputMetricsResponse"> & {
  /**
   * @generated from field: repeated monitoring.ThroughputMetric throughput_metrics = 1;
   */
  throughputMetrics: ThroughputMetric[];
};

/**
 * Describes the message monitoring.GetThroughputMetricsResponse.
 * Use `create(GetThroughputMetricsResponseSchema)` to create a new message.
 */
export declare const GetThroughputMetricsResponseSchema: GenMessage<GetThroughputMetricsResponse>;

/**
 * @generated from message monitoring.StreamAlertsRequest
 */
export declare type StreamAlertsRequest = Message<"monitoring.StreamAlertsRequest"> & {
  /**
   * @generated from field: optional monitoring.AlertSeverity min_severity = 1;
   */
  minSeverity?: AlertSeverity;

  /**
   * @generated from field: repeated string service_names = 2;
   */
  serviceNames: string[];

  /**
   * @generated from field: repeated monitoring.AlertType alert_types = 3;
   */
  alertTypes: AlertType[];
};

/**
 * Describes the message monitoring.StreamAlertsRequest.
 * Use `create(StreamAlertsRequestSchema)` to create a new message.
 */
export declare const StreamAlertsRequestSchema: GenMessage<StreamAlertsRequest>;

/**
 * @generated from message monitoring.AcknowledgeAlertRequest
 */
export declare type AcknowledgeAlertRequest = Message<"monitoring.AcknowledgeAlertRequest"> & {
  /**
   * @generated from field: string alert_id = 1;
   */
  alertId: string;

  /**
   * @generated from field: string acknowledged_by = 2;
   */
  acknowledgedBy: string;

  /**
   * @generated from field: optional string note = 3;
   */
  note?: string;
};

/**
 * Describes the message monitoring.AcknowledgeAlertRequest.
 * Use `create(AcknowledgeAlertRequestSchema)` to create a new message.
 */
export declare const AcknowledgeAlertRequestSchema: GenMessage<AcknowledgeAlertRequest>;

/**
 * @generated from message monitoring.AcknowledgeAlertResponse
 */
export declare type AcknowledgeAlertResponse = Message<"monitoring.AcknowledgeAlertResponse"> & {
  /**
   * @generated from field: bool success = 1;
   */
  success: boolean;

  /**
   * @generated from field: string message = 2;
   */
  message: string;

  /**
   * @generated from field: int64 timestamp = 3;
   */
  timestamp: bigint;
};

/**
 * Describes the message monitoring.AcknowledgeAlertResponse.
 * Use `create(AcknowledgeAlertResponseSchema)` to create a new message.
 */
export declare const AcknowledgeAlertResponseSchema: GenMessage<AcknowledgeAlertResponse>;

/**
 * @generated from message monitoring.GetActiveAlertsRequest
 */
export declare type GetActiveAlertsRequest = Message<"monitoring.GetActiveAlertsRequest"> & {
  /**
   * @generated from field: optional monitoring.AlertSeverity min_severity = 1;
   */
  minSeverity?: AlertSeverity;

  /**
   * @generated from field: repeated string service_names = 2;
   */
  serviceNames: string[];
};

/**
 * Describes the message monitoring.GetActiveAlertsRequest.
 * Use `create(GetActiveAlertsRequestSchema)` to create a new message.
 */
export declare const GetActiveAlertsRequestSchema: GenMessage<GetActiveAlertsRequest>;

/**
 * @generated from message monitoring.GetActiveAlertsResponse
 */
export declare type GetActiveAlertsResponse = Message<"monitoring.GetActiveAlertsResponse"> & {
  /**
   * @generated from field: repeated monitoring.Alert active_alerts = 1;
   */
  activeAlerts: Alert[];

  /**
   * @generated from field: int32 total_count = 2;
   */
  totalCount: number;
};

/**
 * Describes the message monitoring.GetActiveAlertsResponse.
 * Use `create(GetActiveAlertsResponseSchema)` to create a new message.
 */
export declare const GetActiveAlertsResponseSchema: GenMessage<GetActiveAlertsResponse>;

/**
 * @generated from message monitoring.ServiceStatus
 */
export declare type ServiceStatus = Message<"monitoring.ServiceStatus"> & {
  /**
   * @generated from field: string service_name = 1;
   */
  serviceName: string;

  /**
   * @generated from field: monitoring.ServiceHealth health = 2;
   */
  health: ServiceHealth;

  /**
   * @generated from field: monitoring.ServiceState state = 3;
   */
  state: ServiceState;

  /**
   * @generated from field: optional string version = 4;
   */
  version?: string;

  /**
   * @generated from field: optional string error_message = 5;
   */
  errorMessage?: string;

  /**
   * @generated from field: int64 uptime_seconds = 6;
   */
  uptimeSeconds: bigint;

  /**
   * @generated from field: int64 last_health_check = 7;
   */
  lastHealthCheck: bigint;

  /**
   * @generated from field: map<string, string> metadata = 8;
   */
  metadata: { [key: string]: string };

  /**
   * @generated from field: repeated monitoring.Dependency dependencies = 9;
   */
  dependencies: Dependency[];
};

/**
 * Describes the message monitoring.ServiceStatus.
 * Use `create(ServiceStatusSchema)` to create a new message.
 */
export declare const ServiceStatusSchema: GenMessage<ServiceStatus>;

/**
 * @generated from message monitoring.SystemStatus
 */
export declare type SystemStatus = Message<"monitoring.SystemStatus"> & {
  /**
   * @generated from field: monitoring.SystemHealth overall_health = 1;
   */
  overallHealth: SystemHealth;

  /**
   * @generated from field: int32 healthy_services = 2;
   */
  healthyServices: number;

  /**
   * @generated from field: int32 total_services = 3;
   */
  totalServices: number;

  /**
   * @generated from field: repeated string critical_issues = 4;
   */
  criticalIssues: string[];

  /**
   * @generated from field: int64 system_uptime_seconds = 5;
   */
  systemUptimeSeconds: bigint;

  /**
   * @generated from field: monitoring.SystemMetrics system_metrics = 6;
   */
  systemMetrics?: SystemMetrics;
};

/**
 * Describes the message monitoring.SystemStatus.
 * Use `create(SystemStatusSchema)` to create a new message.
 */
export declare const SystemStatusSchema: GenMessage<SystemStatus>;

/**
 * @generated from message monitoring.HealthCheck
 */
export declare type HealthCheck = Message<"monitoring.HealthCheck"> & {
  /**
   * @generated from field: string check_name = 1;
   */
  checkName: string;

  /**
   * @generated from field: monitoring.HealthStatus status = 2;
   */
  status: HealthStatus;

  /**
   * @generated from field: optional string message = 3;
   */
  message?: string;

  /**
   * @generated from field: optional double response_time_ms = 4;
   */
  responseTimeMs?: number;

  /**
   * @generated from field: int64 last_checked = 5;
   */
  lastChecked: bigint;

  /**
   * @generated from field: map<string, string> details = 6;
   */
  details: { [key: string]: string };
};

/**
 * Describes the message monitoring.HealthCheck.
 * Use `create(HealthCheckSchema)` to create a new message.
 */
export declare const HealthCheckSchema: GenMessage<HealthCheck>;

/**
 * @generated from message monitoring.Dependency
 */
export declare type Dependency = Message<"monitoring.Dependency"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * @generated from field: monitoring.DependencyType dependency_type = 2;
   */
  dependencyType: DependencyType;

  /**
   * @generated from field: monitoring.HealthStatus status = 3;
   */
  status: HealthStatus;

  /**
   * @generated from field: optional string endpoint = 4;
   */
  endpoint?: string;

  /**
   * @generated from field: optional double response_time_ms = 5;
   */
  responseTimeMs?: number;

  /**
   * @generated from field: int64 last_checked = 6;
   */
  lastChecked: bigint;
};

/**
 * Describes the message monitoring.Dependency.
 * Use `create(DependencySchema)` to create a new message.
 */
export declare const DependencySchema: GenMessage<Dependency>;

/**
 * @generated from message monitoring.SystemMetrics
 */
export declare type SystemMetrics = Message<"monitoring.SystemMetrics"> & {
  /**
   * @generated from field: double cpu_usage_percent = 1;
   */
  cpuUsagePercent: number;

  /**
   * @generated from field: double memory_usage_percent = 2;
   */
  memoryUsagePercent: number;

  /**
   * @generated from field: double disk_usage_percent = 3;
   */
  diskUsagePercent: number;

  /**
   * @generated from field: double network_io_mbps = 4;
   */
  networkIoMbps: number;

  /**
   * @generated from field: int32 active_connections = 5;
   */
  activeConnections: number;

  /**
   * @generated from field: int32 total_requests = 6;
   */
  totalRequests: number;

  /**
   * @generated from field: double avg_response_time_ms = 7;
   */
  avgResponseTimeMs: number;

  /**
   * @generated from field: double error_rate_percent = 8;
   */
  errorRatePercent: number;
};

/**
 * Describes the message monitoring.SystemMetrics.
 * Use `create(SystemMetricsSchema)` to create a new message.
 */
export declare const SystemMetricsSchema: GenMessage<SystemMetrics>;

/**
 * @generated from message monitoring.Metric
 */
export declare type Metric = Message<"monitoring.Metric"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * @generated from field: monitoring.MetricType metric_type = 2;
   */
  metricType: MetricType;

  /**
   * @generated from field: double value = 3;
   */
  value: number;

  /**
   * @generated from field: string unit = 4;
   */
  unit: string;

  /**
   * @generated from field: map<string, string> labels = 5;
   */
  labels: { [key: string]: string };

  /**
   * @generated from field: int64 timestamp = 6;
   */
  timestamp: bigint;

  /**
   * @generated from field: optional monitoring.MetricStatistics statistics = 7;
   */
  statistics?: MetricStatistics;
};

/**
 * Describes the message monitoring.Metric.
 * Use `create(MetricSchema)` to create a new message.
 */
export declare const MetricSchema: GenMessage<Metric>;

/**
 * @generated from message monitoring.MetricStatistics
 */
export declare type MetricStatistics = Message<"monitoring.MetricStatistics"> & {
  /**
   * @generated from field: double min = 1;
   */
  min: number;

  /**
   * @generated from field: double max = 2;
   */
  max: number;

  /**
   * @generated from field: double avg = 3;
   */
  avg: number;

  /**
   * @generated from field: double percentile_95 = 4;
   */
  percentile95: number;

  /**
   * @generated from field: double percentile_99 = 5;
   */
  percentile99: number;

  /**
   * @generated from field: double std_dev = 6;
   */
  stdDev: number;

  /**
   * @generated from field: int32 sample_count = 7;
   */
  sampleCount: number;
};

/**
 * Describes the message monitoring.MetricStatistics.
 * Use `create(MetricStatisticsSchema)` to create a new message.
 */
export declare const MetricStatisticsSchema: GenMessage<MetricStatistics>;

/**
 * @generated from message monitoring.LatencyMetric
 */
export declare type LatencyMetric = Message<"monitoring.LatencyMetric"> & {
  /**
   * @generated from field: string service_name = 1;
   */
  serviceName: string;

  /**
   * @generated from field: string operation_name = 2;
   */
  operationName: string;

  /**
   * @generated from field: double avg_latency_ms = 3;
   */
  avgLatencyMs: number;

  /**
   * @generated from field: double p50_latency_ms = 4;
   */
  p50LatencyMs: number;

  /**
   * @generated from field: double p95_latency_ms = 5;
   */
  p95LatencyMs: number;

  /**
   * @generated from field: double p99_latency_ms = 6;
   */
  p99LatencyMs: number;

  /**
   * @generated from field: double max_latency_ms = 7;
   */
  maxLatencyMs: number;

  /**
   * @generated from field: int32 request_count = 8;
   */
  requestCount: number;

  /**
   * @generated from field: int64 time_window_start = 9;
   */
  timeWindowStart: bigint;

  /**
   * @generated from field: int64 time_window_end = 10;
   */
  timeWindowEnd: bigint;
};

/**
 * Describes the message monitoring.LatencyMetric.
 * Use `create(LatencyMetricSchema)` to create a new message.
 */
export declare const LatencyMetricSchema: GenMessage<LatencyMetric>;

/**
 * @generated from message monitoring.ThroughputMetric
 */
export declare type ThroughputMetric = Message<"monitoring.ThroughputMetric"> & {
  /**
   * @generated from field: string service_name = 1;
   */
  serviceName: string;

  /**
   * @generated from field: string operation_name = 2;
   */
  operationName: string;

  /**
   * @generated from field: double requests_per_second = 3;
   */
  requestsPerSecond: number;

  /**
   * @generated from field: double bytes_per_second = 4;
   */
  bytesPerSecond: number;

  /**
   * @generated from field: int32 total_requests = 5;
   */
  totalRequests: number;

  /**
   * @generated from field: int64 total_bytes = 6;
   */
  totalBytes: bigint;

  /**
   * @generated from field: int64 time_window_start = 7;
   */
  timeWindowStart: bigint;

  /**
   * @generated from field: int64 time_window_end = 8;
   */
  timeWindowEnd: bigint;
};

/**
 * Describes the message monitoring.ThroughputMetric.
 * Use `create(ThroughputMetricSchema)` to create a new message.
 */
export declare const ThroughputMetricSchema: GenMessage<ThroughputMetric>;

/**
 * @generated from message monitoring.Alert
 */
export declare type Alert = Message<"monitoring.Alert"> & {
  /**
   * @generated from field: string alert_id = 1;
   */
  alertId: string;

  /**
   * @generated from field: monitoring.AlertType alert_type = 2;
   */
  alertType: AlertType;

  /**
   * @generated from field: monitoring.AlertSeverity severity = 3;
   */
  severity: AlertSeverity;

  /**
   * @generated from field: string title = 4;
   */
  title: string;

  /**
   * @generated from field: string description = 5;
   */
  description: string;

  /**
   * @generated from field: string service_name = 6;
   */
  serviceName: string;

  /**
   * @generated from field: map<string, string> labels = 7;
   */
  labels: { [key: string]: string };

  /**
   * @generated from field: int64 triggered_at = 8;
   */
  triggeredAt: bigint;

  /**
   * @generated from field: optional int64 acknowledged_at = 9;
   */
  acknowledgedAt?: bigint;

  /**
   * @generated from field: optional string acknowledged_by = 10;
   */
  acknowledgedBy?: string;

  /**
   * @generated from field: optional int64 resolved_at = 11;
   */
  resolvedAt?: bigint;

  /**
   * @generated from field: monitoring.AlertStatus status = 12;
   */
  status: AlertStatus;

  /**
   * @generated from field: optional string resolution_note = 13;
   */
  resolutionNote?: string;
};

/**
 * Describes the message monitoring.Alert.
 * Use `create(AlertSchema)` to create a new message.
 */
export declare const AlertSchema: GenMessage<Alert>;

/**
 * @generated from message monitoring.SystemStatusEvent
 */
export declare type SystemStatusEvent = Message<"monitoring.SystemStatusEvent"> & {
  /**
   * @generated from field: monitoring.SystemStatus system_status = 1;
   */
  systemStatus?: SystemStatus;

  /**
   * @generated from field: monitoring.SystemStatusChangeType change_type = 2;
   */
  changeType: SystemStatusChangeType;

  /**
   * @generated from field: int64 timestamp = 3;
   */
  timestamp: bigint;
};

/**
 * Describes the message monitoring.SystemStatusEvent.
 * Use `create(SystemStatusEventSchema)` to create a new message.
 */
export declare const SystemStatusEventSchema: GenMessage<SystemStatusEvent>;

/**
 * @generated from message monitoring.MetricsEvent
 */
export declare type MetricsEvent = Message<"monitoring.MetricsEvent"> & {
  /**
   * @generated from field: repeated monitoring.Metric metrics = 1;
   */
  metrics: Metric[];

  /**
   * @generated from field: int64 timestamp = 2;
   */
  timestamp: bigint;
};

/**
 * Describes the message monitoring.MetricsEvent.
 * Use `create(MetricsEventSchema)` to create a new message.
 */
export declare const MetricsEventSchema: GenMessage<MetricsEvent>;

/**
 * @generated from message monitoring.AlertEvent
 */
export declare type AlertEvent = Message<"monitoring.AlertEvent"> & {
  /**
   * @generated from field: monitoring.Alert alert = 1;
   */
  alert?: Alert;

  /**
   * @generated from field: monitoring.AlertEventType event_type = 2;
   */
  eventType: AlertEventType;

  /**
   * @generated from field: int64 timestamp = 3;
   */
  timestamp: bigint;
};

/**
 * Describes the message monitoring.AlertEvent.
 * Use `create(AlertEventSchema)` to create a new message.
 */
export declare const AlertEventSchema: GenMessage<AlertEvent>;

/**
 * @generated from message monitoring.GetLiveTrainingMetricsRequest
 */
export declare type GetLiveTrainingMetricsRequest = Message<"monitoring.GetLiveTrainingMetricsRequest"> & {
  /**
   * optional: "dqn", "ppo", etc.
   *
   * @generated from field: string model_filter = 1;
   */
  modelFilter: string;
};

/**
 * Describes the message monitoring.GetLiveTrainingMetricsRequest.
 * Use `create(GetLiveTrainingMetricsRequestSchema)` to create a new message.
 */
export declare const GetLiveTrainingMetricsRequestSchema: GenMessage<GetLiveTrainingMetricsRequest>;

/**
 * @generated from message monitoring.StreamTrainingMetricsRequest
 */
export declare type StreamTrainingMetricsRequest = Message<"monitoring.StreamTrainingMetricsRequest"> & {
  /**
   * @generated from field: string model_filter = 1;
   */
  modelFilter: string;

  /**
   * 0 = server default (3s)
   *
   * @generated from field: uint32 interval_seconds = 2;
   */
  intervalSeconds: number;
};

/**
 * Describes the message monitoring.StreamTrainingMetricsRequest.
 * Use `create(StreamTrainingMetricsRequestSchema)` to create a new message.
 */
export declare const StreamTrainingMetricsRequestSchema: GenMessage<StreamTrainingMetricsRequest>;

/**
 * @generated from message monitoring.GetLiveTrainingMetricsResponse
 */
export declare type GetLiveTrainingMetricsResponse = Message<"monitoring.GetLiveTrainingMetricsResponse"> & {
  /**
   * @generated from field: repeated monitoring.TrainingSession sessions = 1;
   */
  sessions: TrainingSession[];

  /**
   * @generated from field: monitoring.GpuSnapshot gpu = 2;
   */
  gpu?: GpuSnapshot;

  /**
   * @generated from field: uint32 active_k8s_jobs = 3;
   */
  activeK8sJobs: number;

  /**
   * @generated from field: int64 timestamp = 4;
   */
  timestamp: bigint;

  /**
   * @generated from field: float cpu_percent = 5;
   */
  cpuPercent: number;

  /**
   * @generated from field: float memory_used_mb = 6;
   */
  memoryUsedMb: number;

  /**
   * @generated from field: float memory_total_mb = 7;
   */
  memoryTotalMb: number;
};

/**
 * Describes the message monitoring.GetLiveTrainingMetricsResponse.
 * Use `create(GetLiveTrainingMetricsResponseSchema)` to create a new message.
 */
export declare const GetLiveTrainingMetricsResponseSchema: GenMessage<GetLiveTrainingMetricsResponse>;

/**
 * @generated from message monitoring.TrainingSession
 */
export declare type TrainingSession = Message<"monitoring.TrainingSession"> & {
  /**
   * @generated from field: string model = 1;
   */
  model: string;

  /**
   * @generated from field: string fold = 2;
   */
  fold: string;

  /**
   * @generated from field: bool is_hyperopt = 3;
   */
  isHyperopt: boolean;

  /**
   * Epoch/progress
   *
   * @generated from field: float current_epoch = 4;
   */
  currentEpoch: number;

  /**
   * @generated from field: float epoch_loss = 5;
   */
  epochLoss: number;

  /**
   * @generated from field: float validation_loss = 6;
   */
  validationLoss: number;

  /**
   * Throughput
   *
   * @generated from field: float batches_per_second = 7;
   */
  batchesPerSecond: number;

  /**
   * @generated from field: float batches_processed = 8;
   */
  batchesProcessed: number;

  /**
   * @generated from field: float iteration_seconds = 9;
   */
  iterationSeconds: number;

  /**
   * Eval metrics
   *
   * @generated from field: float eval_accuracy = 10;
   */
  evalAccuracy: number;

  /**
   * @generated from field: float eval_precision = 11;
   */
  evalPrecision: number;

  /**
   * @generated from field: float eval_recall = 12;
   */
  evalRecall: number;

  /**
   * @generated from field: float eval_f1 = 13;
   */
  evalF1: number;

  /**
   * Checkpoint
   *
   * @generated from field: float checkpoint_size_bytes = 14;
   */
  checkpointSizeBytes: number;

  /**
   * @generated from field: uint32 checkpoint_saves = 15;
   */
  checkpointSaves: number;

  /**
   * @generated from field: uint32 checkpoint_failures = 16;
   */
  checkpointFailures: number;

  /**
   * Health counters
   *
   * @generated from field: uint32 nan_detected = 17;
   */
  nanDetected: number;

  /**
   * @generated from field: uint32 gradient_explosions = 18;
   */
  gradientExplosions: number;

  /**
   * @generated from field: uint32 feature_errors = 19;
   */
  featureErrors: number;

  /**
   * Hyperopt fields (populated when is_hyperopt=true)
   *
   * @generated from field: uint32 hyperopt_trial_current = 20;
   */
  hyperoptTrialCurrent: number;

  /**
   * @generated from field: uint32 hyperopt_trial_total = 21;
   */
  hyperoptTrialTotal: number;

  /**
   * @generated from field: float hyperopt_best_objective = 22;
   */
  hyperoptBestObjective: number;

  /**
   * @generated from field: uint32 hyperopt_trials_failed = 23;
   */
  hyperoptTrialsFailed: number;

  /**
   * RL diagnostics
   *
   * @generated from field: float q_value_mean = 24;
   */
  qValueMean: number;

  /**
   * @generated from field: float q_value_max = 25;
   */
  qValueMax: number;

  /**
   * @generated from field: float policy_entropy = 26;
   */
  policyEntropy: number;

  /**
   * @generated from field: float kl_divergence = 27;
   */
  klDivergence: number;

  /**
   * @generated from field: float advantage_mean = 28;
   */
  advantageMean: number;

  /**
   * @generated from field: uint32 replay_buffer_size = 29;
   */
  replayBufferSize: number;

  /**
   * Gradient & training health
   *
   * @generated from field: float gradient_norm = 30;
   */
  gradientNorm: number;

  /**
   * @generated from field: float learning_rate = 31;
   */
  learningRate: number;

  /**
   * @generated from field: float epoch_duration_seconds = 32;
   */
  epochDurationSeconds: number;

  /**
   * Hyperopt intra-trial
   *
   * @generated from field: uint32 hyperopt_trial_epoch = 33;
   */
  hyperoptTrialEpoch: number;

  /**
   * @generated from field: float hyperopt_trial_best_loss = 34;
   */
  hyperoptTrialBestLoss: number;

  /**
   * @generated from field: float hyperopt_elapsed_seconds = 35;
   */
  hyperoptElapsedSeconds: number;

  /**
   * Epoch-level financial metrics
   *
   * @generated from field: float epoch_sharpe = 36;
   */
  epochSharpe: number;

  /**
   * @generated from field: float epoch_sortino = 37;
   */
  epochSortino: number;

  /**
   * @generated from field: float epoch_win_rate = 38;
   */
  epochWinRate: number;

  /**
   * @generated from field: float epoch_max_drawdown = 39;
   */
  epochMaxDrawdown: number;

  /**
   * @generated from field: float epoch_profit_factor = 40;
   */
  epochProfitFactor: number;

  /**
   * @generated from field: float epoch_total_return = 41;
   */
  epochTotalReturn: number;

  /**
   * @generated from field: float epoch_avg_return = 42;
   */
  epochAvgReturn: number;

  /**
   * @generated from field: uint32 epoch_total_trades = 43;
   */
  epochTotalTrades: number;

  /**
   * Action distribution
   *
   * @generated from field: float action_buy_pct = 44;
   */
  actionBuyPct: number;

  /**
   * @generated from field: float action_sell_pct = 45;
   */
  actionSellPct: number;

  /**
   * @generated from field: float action_hold_pct = 46;
   */
  actionHoldPct: number;
};

/**
 * Describes the message monitoring.TrainingSession.
 * Use `create(TrainingSessionSchema)` to create a new message.
 */
export declare const TrainingSessionSchema: GenMessage<TrainingSession>;

/**
 * @generated from message monitoring.GpuSnapshot
 */
export declare type GpuSnapshot = Message<"monitoring.GpuSnapshot"> & {
  /**
   * @generated from field: float utilization_percent = 1;
   */
  utilizationPercent: number;

  /**
   * @generated from field: float memory_used_mb = 2;
   */
  memoryUsedMb: number;

  /**
   * @generated from field: float memory_total_mb = 3;
   */
  memoryTotalMb: number;

  /**
   * @generated from field: float temperature_celsius = 4;
   */
  temperatureCelsius: number;

  /**
   * @generated from field: float power_watts = 5;
   */
  powerWatts: number;
};

/**
 * Describes the message monitoring.GpuSnapshot.
 * Use `create(GpuSnapshotSchema)` to create a new message.
 */
export declare const GpuSnapshotSchema: GenMessage<GpuSnapshot>;

/**
 * @generated from message monitoring.GetEpochHistoryRequest
 */
export declare type GetEpochHistoryRequest = Message<"monitoring.GetEpochHistoryRequest"> & {
  /**
   * @generated from field: string model = 1;
   */
  model: string;

  /**
   * @generated from field: string fold = 2;
   */
  fold: string;

  /**
   * 0 = all (up to 50)
   *
   * @generated from field: uint32 max_epochs = 3;
   */
  maxEpochs: number;
};

/**
 * Describes the message monitoring.GetEpochHistoryRequest.
 * Use `create(GetEpochHistoryRequestSchema)` to create a new message.
 */
export declare const GetEpochHistoryRequestSchema: GenMessage<GetEpochHistoryRequest>;

/**
 * @generated from message monitoring.EpochFinancialSnapshot
 */
export declare type EpochFinancialSnapshot = Message<"monitoring.EpochFinancialSnapshot"> & {
  /**
   * @generated from field: uint32 epoch = 1;
   */
  epoch: number;

  /**
   * @generated from field: float sharpe = 2;
   */
  sharpe: number;

  /**
   * @generated from field: float sortino = 3;
   */
  sortino: number;

  /**
   * @generated from field: float win_rate = 4;
   */
  winRate: number;

  /**
   * @generated from field: float max_drawdown = 5;
   */
  maxDrawdown: number;

  /**
   * @generated from field: float profit_factor = 6;
   */
  profitFactor: number;

  /**
   * @generated from field: float total_return = 7;
   */
  totalReturn: number;

  /**
   * @generated from field: float avg_return = 8;
   */
  avgReturn: number;

  /**
   * @generated from field: uint32 total_trades = 9;
   */
  totalTrades: number;

  /**
   * @generated from field: float loss = 10;
   */
  loss: number;

  /**
   * @generated from field: float val_loss = 11;
   */
  valLoss: number;

  /**
   * @generated from field: float learning_rate = 12;
   */
  learningRate: number;

  /**
   * @generated from field: float action_buy_pct = 13;
   */
  actionBuyPct: number;

  /**
   * @generated from field: float action_sell_pct = 14;
   */
  actionSellPct: number;

  /**
   * @generated from field: float action_hold_pct = 15;
   */
  actionHoldPct: number;
};

/**
 * Describes the message monitoring.EpochFinancialSnapshot.
 * Use `create(EpochFinancialSnapshotSchema)` to create a new message.
 */
export declare const EpochFinancialSnapshotSchema: GenMessage<EpochFinancialSnapshot>;

/**
 * @generated from message monitoring.GetEpochHistoryResponse
 */
export declare type GetEpochHistoryResponse = Message<"monitoring.GetEpochHistoryResponse"> & {
  /**
   * @generated from field: string model = 1;
   */
  model: string;

  /**
   * @generated from field: string fold = 2;
   */
  fold: string;

  /**
   * @generated from field: repeated monitoring.EpochFinancialSnapshot epochs = 3;
   */
  epochs: EpochFinancialSnapshot[];
};

/**
 * Describes the message monitoring.GetEpochHistoryResponse.
 * Use `create(GetEpochHistoryResponseSchema)` to create a new message.
 */
export declare const GetEpochHistoryResponseSchema: GenMessage<GetEpochHistoryResponse>;

/**
 * @generated from message monitoring.SubscribeClusterPodsRequest
 */
export declare type SubscribeClusterPodsRequest = Message<"monitoring.SubscribeClusterPodsRequest"> & {
  /**
   * 0 = server default (5s)
   *
   * @generated from field: uint32 interval_seconds = 1;
   */
  intervalSeconds: number;
};

/**
 * Describes the message monitoring.SubscribeClusterPodsRequest.
 * Use `create(SubscribeClusterPodsRequestSchema)` to create a new message.
 */
export declare const SubscribeClusterPodsRequestSchema: GenMessage<SubscribeClusterPodsRequest>;

/**
 * @generated from message monitoring.ClusterPodsResponse
 */
export declare type ClusterPodsResponse = Message<"monitoring.ClusterPodsResponse"> & {
  /**
   * @generated from field: repeated monitoring.PodInfo pods = 1;
   */
  pods: PodInfo[];

  /**
   * @generated from field: int64 timestamp = 2;
   */
  timestamp: bigint;
};

/**
 * Describes the message monitoring.ClusterPodsResponse.
 * Use `create(ClusterPodsResponseSchema)` to create a new message.
 */
export declare const ClusterPodsResponseSchema: GenMessage<ClusterPodsResponse>;

/**
 * @generated from message monitoring.PodInfo
 */
export declare type PodInfo = Message<"monitoring.PodInfo"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * app.kubernetes.io/name label
   *
   * @generated from field: string service = 2;
   */
  service: string;

  /**
   * @generated from field: string namespace = 3;
   */
  namespace: string;

  /**
   * Running/Pending/CrashLoopBackOff/Completed/etc
   *
   * @generated from field: string status = 4;
   */
  status: string;

  /**
   * @generated from field: int32 restarts = 5;
   */
  restarts: number;

  /**
   * human-readable: "2d5h", "3m"
   *
   * @generated from field: string age = 6;
   */
  age: string;

  /**
   * @generated from field: string node = 7;
   */
  node: string;

  /**
   * @generated from field: bool ready = 8;
   */
  ready: boolean;

  /**
   * from FOXHUNT_BUILD_VERSION env or empty
   *
   * @generated from field: string version = 9;
   */
  version: string;
};

/**
 * Describes the message monitoring.PodInfo.
 * Use `create(PodInfoSchema)` to create a new message.
 */
export declare const PodInfoSchema: GenMessage<PodInfo>;

/**
 * Health status levels for services
 *
 * @generated from enum monitoring.ServiceHealth
 */
export enum ServiceHealth {
  /**
   * Default/unknown health
   *
   * @generated from enum value: SERVICE_HEALTH_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Service operating normally
   *
   * @generated from enum value: SERVICE_HEALTH_HEALTHY = 1;
   */
  HEALTHY = 1,

  /**
   * Service performance degraded
   *
   * @generated from enum value: SERVICE_HEALTH_DEGRADED = 2;
   */
  DEGRADED = 2,

  /**
   * Service not functioning properly
   *
   * @generated from enum value: SERVICE_HEALTH_UNHEALTHY = 3;
   */
  UNHEALTHY = 3,

  /**
   * Service in critical failure state
   *
   * @generated from enum value: SERVICE_HEALTH_CRITICAL = 4;
   */
  CRITICAL = 4,
}

/**
 * Describes the enum monitoring.ServiceHealth.
 */
export declare const ServiceHealthSchema: GenEnum<ServiceHealth>;

/**
 * Operational states of services
 *
 * @generated from enum monitoring.ServiceState
 */
export enum ServiceState {
  /**
   * Default/unknown state
   *
   * @generated from enum value: SERVICE_STATE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Service is starting up
   *
   * @generated from enum value: SERVICE_STATE_STARTING = 1;
   */
  STARTING = 1,

  /**
   * Service is running normally
   *
   * @generated from enum value: SERVICE_STATE_RUNNING = 2;
   */
  RUNNING = 2,

  /**
   * Service is shutting down
   *
   * @generated from enum value: SERVICE_STATE_STOPPING = 3;
   */
  STOPPING = 3,

  /**
   * Service is stopped
   *
   * @generated from enum value: SERVICE_STATE_STOPPED = 4;
   */
  STOPPED = 4,

  /**
   * Service encountered an error
   *
   * @generated from enum value: SERVICE_STATE_ERROR = 5;
   */
  ERROR = 5,
}

/**
 * Describes the enum monitoring.ServiceState.
 */
export declare const ServiceStateSchema: GenEnum<ServiceState>;

/**
 * @generated from enum monitoring.SystemHealth
 */
export enum SystemHealth {
  /**
   * @generated from enum value: SYSTEM_HEALTH_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: SYSTEM_HEALTH_HEALTHY = 1;
   */
  HEALTHY = 1,

  /**
   * @generated from enum value: SYSTEM_HEALTH_DEGRADED = 2;
   */
  DEGRADED = 2,

  /**
   * @generated from enum value: SYSTEM_HEALTH_UNHEALTHY = 3;
   */
  UNHEALTHY = 3,

  /**
   * @generated from enum value: SYSTEM_HEALTH_CRITICAL = 4;
   */
  CRITICAL = 4,
}

/**
 * Describes the enum monitoring.SystemHealth.
 */
export declare const SystemHealthSchema: GenEnum<SystemHealth>;

/**
 * @generated from enum monitoring.HealthStatus
 */
export enum HealthStatus {
  /**
   * @generated from enum value: HEALTH_STATUS_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: HEALTH_STATUS_HEALTHY = 1;
   */
  HEALTHY = 1,

  /**
   * @generated from enum value: HEALTH_STATUS_DEGRADED = 2;
   */
  DEGRADED = 2,

  /**
   * @generated from enum value: HEALTH_STATUS_UNHEALTHY = 3;
   */
  UNHEALTHY = 3,

  /**
   * @generated from enum value: HEALTH_STATUS_CRITICAL = 4;
   */
  CRITICAL = 4,
}

/**
 * Describes the enum monitoring.HealthStatus.
 */
export declare const HealthStatusSchema: GenEnum<HealthStatus>;

/**
 * @generated from enum monitoring.DependencyType
 */
export enum DependencyType {
  /**
   * @generated from enum value: DEPENDENCY_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: DEPENDENCY_TYPE_DATABASE = 1;
   */
  DATABASE = 1,

  /**
   * @generated from enum value: DEPENDENCY_TYPE_MESSAGE_QUEUE = 2;
   */
  MESSAGE_QUEUE = 2,

  /**
   * @generated from enum value: DEPENDENCY_TYPE_CACHE = 3;
   */
  CACHE = 3,

  /**
   * @generated from enum value: DEPENDENCY_TYPE_EXTERNAL_API = 4;
   */
  EXTERNAL_API = 4,

  /**
   * @generated from enum value: DEPENDENCY_TYPE_FILE_SYSTEM = 5;
   */
  FILE_SYSTEM = 5,

  /**
   * @generated from enum value: DEPENDENCY_TYPE_NETWORK = 6;
   */
  NETWORK = 6,
}

/**
 * Describes the enum monitoring.DependencyType.
 */
export declare const DependencyTypeSchema: GenEnum<DependencyType>;

/**
 * @generated from enum monitoring.MetricType
 */
export enum MetricType {
  /**
   * @generated from enum value: METRIC_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: METRIC_TYPE_COUNTER = 1;
   */
  COUNTER = 1,

  /**
   * @generated from enum value: METRIC_TYPE_GAUGE = 2;
   */
  GAUGE = 2,

  /**
   * @generated from enum value: METRIC_TYPE_HISTOGRAM = 3;
   */
  HISTOGRAM = 3,

  /**
   * @generated from enum value: METRIC_TYPE_TIMER = 4;
   */
  TIMER = 4,
}

/**
 * Describes the enum monitoring.MetricType.
 */
export declare const MetricTypeSchema: GenEnum<MetricType>;

/**
 * @generated from enum monitoring.MetricAggregation
 */
export enum MetricAggregation {
  /**
   * @generated from enum value: METRIC_AGGREGATION_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: METRIC_AGGREGATION_SUM = 1;
   */
  SUM = 1,

  /**
   * @generated from enum value: METRIC_AGGREGATION_AVG = 2;
   */
  AVG = 2,

  /**
   * @generated from enum value: METRIC_AGGREGATION_MIN = 3;
   */
  MIN = 3,

  /**
   * @generated from enum value: METRIC_AGGREGATION_MAX = 4;
   */
  MAX = 4,

  /**
   * @generated from enum value: METRIC_AGGREGATION_COUNT = 5;
   */
  COUNT = 5,
}

/**
 * Describes the enum monitoring.MetricAggregation.
 */
export declare const MetricAggregationSchema: GenEnum<MetricAggregation>;

/**
 * @generated from enum monitoring.AlertType
 */
export enum AlertType {
  /**
   * @generated from enum value: ALERT_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: ALERT_TYPE_HEALTH_CHECK = 1;
   */
  HEALTH_CHECK = 1,

  /**
   * @generated from enum value: ALERT_TYPE_PERFORMANCE = 2;
   */
  PERFORMANCE = 2,

  /**
   * @generated from enum value: ALERT_TYPE_ERROR_RATE = 3;
   */
  ERROR_RATE = 3,

  /**
   * @generated from enum value: ALERT_TYPE_LATENCY = 4;
   */
  LATENCY = 4,

  /**
   * @generated from enum value: ALERT_TYPE_THROUGHPUT = 5;
   */
  THROUGHPUT = 5,

  /**
   * @generated from enum value: ALERT_TYPE_RESOURCE_USAGE = 6;
   */
  RESOURCE_USAGE = 6,

  /**
   * @generated from enum value: ALERT_TYPE_DEPENDENCY = 7;
   */
  DEPENDENCY = 7,

  /**
   * @generated from enum value: ALERT_TYPE_SECURITY = 8;
   */
  SECURITY = 8,
}

/**
 * Describes the enum monitoring.AlertType.
 */
export declare const AlertTypeSchema: GenEnum<AlertType>;

/**
 * Alert severity levels
 *
 * @generated from enum monitoring.AlertSeverity
 */
export enum AlertSeverity {
  /**
   * Default/unknown severity
   *
   * @generated from enum value: ALERT_SEVERITY_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Informational alert
   *
   * @generated from enum value: ALERT_SEVERITY_INFO = 1;
   */
  INFO = 1,

  /**
   * Warning requiring attention
   *
   * @generated from enum value: ALERT_SEVERITY_WARNING = 2;
   */
  WARNING = 2,

  /**
   * Critical issue requiring immediate action
   *
   * @generated from enum value: ALERT_SEVERITY_CRITICAL = 3;
   */
  CRITICAL = 3,

  /**
   * Emergency requiring immediate response
   *
   * @generated from enum value: ALERT_SEVERITY_EMERGENCY = 4;
   */
  EMERGENCY = 4,
}

/**
 * Describes the enum monitoring.AlertSeverity.
 */
export declare const AlertSeveritySchema: GenEnum<AlertSeverity>;

/**
 * Current status of alerts
 *
 * @generated from enum monitoring.AlertStatus
 */
export enum AlertStatus {
  /**
   * Default/unknown status
   *
   * @generated from enum value: ALERT_STATUS_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Alert is currently active
   *
   * @generated from enum value: ALERT_STATUS_ACTIVE = 1;
   */
  ACTIVE = 1,

  /**
   * Alert has been acknowledged
   *
   * @generated from enum value: ALERT_STATUS_ACKNOWLEDGED = 2;
   */
  ACKNOWLEDGED = 2,

  /**
   * Alert has been resolved
   *
   * @generated from enum value: ALERT_STATUS_RESOLVED = 3;
   */
  RESOLVED = 3,

  /**
   * Alert is temporarily suppressed
   *
   * @generated from enum value: ALERT_STATUS_SUPPRESSED = 4;
   */
  SUPPRESSED = 4,
}

/**
 * Describes the enum monitoring.AlertStatus.
 */
export declare const AlertStatusSchema: GenEnum<AlertStatus>;

/**
 * @generated from enum monitoring.SystemStatusChangeType
 */
export enum SystemStatusChangeType {
  /**
   * @generated from enum value: SYSTEM_STATUS_CHANGE_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: SYSTEM_STATUS_CHANGE_TYPE_HEALTH_IMPROVED = 1;
   */
  HEALTH_IMPROVED = 1,

  /**
   * @generated from enum value: SYSTEM_STATUS_CHANGE_TYPE_HEALTH_DEGRADED = 2;
   */
  HEALTH_DEGRADED = 2,

  /**
   * @generated from enum value: SYSTEM_STATUS_CHANGE_TYPE_SERVICE_STARTED = 3;
   */
  SERVICE_STARTED = 3,

  /**
   * @generated from enum value: SYSTEM_STATUS_CHANGE_TYPE_SERVICE_STOPPED = 4;
   */
  SERVICE_STOPPED = 4,

  /**
   * @generated from enum value: SYSTEM_STATUS_CHANGE_TYPE_SERVICE_ERROR = 5;
   */
  SERVICE_ERROR = 5,
}

/**
 * Describes the enum monitoring.SystemStatusChangeType.
 */
export declare const SystemStatusChangeTypeSchema: GenEnum<SystemStatusChangeType>;

/**
 * @generated from enum monitoring.AlertEventType
 */
export enum AlertEventType {
  /**
   * @generated from enum value: ALERT_EVENT_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: ALERT_EVENT_TYPE_TRIGGERED = 1;
   */
  TRIGGERED = 1,

  /**
   * @generated from enum value: ALERT_EVENT_TYPE_ACKNOWLEDGED = 2;
   */
  ACKNOWLEDGED = 2,

  /**
   * @generated from enum value: ALERT_EVENT_TYPE_RESOLVED = 3;
   */
  RESOLVED = 3,

  /**
   * @generated from enum value: ALERT_EVENT_TYPE_ESCALATED = 4;
   */
  ESCALATED = 4,
}

/**
 * Describes the enum monitoring.AlertEventType.
 */
export declare const AlertEventTypeSchema: GenEnum<AlertEventType>;

/**
 * Monitoring Service provides comprehensive system health monitoring, performance metrics collection,
 * alerting capabilities, and training metrics for the HFT trading system. This service tracks latency,
 * throughput, resource utilization, service health, and ML training progress across all components
 * with real-time alerting and streaming.
 *
 * @generated from service monitoring.MonitoringService
 */
export declare const MonitoringService: GenService<{
  /**
   * Health and Status Monitoring
   * Get overall system status and individual service health
   *
   * @generated from rpc monitoring.MonitoringService.GetSystemStatus
   */
  getSystemStatus: {
    methodKind: "unary";
    input: typeof GetSystemStatusRequestSchema;
    output: typeof GetSystemStatusResponseSchema;
  },
  /**
   * Stream real-time system status changes
   *
   * @generated from rpc monitoring.MonitoringService.StreamSystemStatus
   */
  streamSystemStatus: {
    methodKind: "server_streaming";
    input: typeof StreamSystemStatusRequestSchema;
    output: typeof SystemStatusEventSchema;
  },
  /**
   * Perform detailed health checks on services
   *
   * @generated from rpc monitoring.MonitoringService.GetHealthCheck
   */
  getHealthCheck: {
    methodKind: "unary";
    input: typeof GetHealthCheckRequestSchema;
    output: typeof GetHealthCheckResponseSchema;
  },
  /**
   * Performance Metrics Collection
   * Get system and application metrics
   *
   * @generated from rpc monitoring.MonitoringService.GetMetrics
   */
  getMetrics: {
    methodKind: "unary";
    input: typeof GetMetricsRequestSchema;
    output: typeof GetMetricsResponseSchema;
  },
  /**
   * Stream real-time performance metrics
   *
   * @generated from rpc monitoring.MonitoringService.StreamMetrics
   */
  streamMetrics: {
    methodKind: "server_streaming";
    input: typeof StreamMetricsRequestSchema;
    output: typeof MetricsEventSchema;
  },
  /**
   * Get detailed latency performance metrics
   *
   * @generated from rpc monitoring.MonitoringService.GetLatencyMetrics
   */
  getLatencyMetrics: {
    methodKind: "unary";
    input: typeof GetLatencyMetricsRequestSchema;
    output: typeof GetLatencyMetricsResponseSchema;
  },
  /**
   * Get throughput and capacity metrics
   *
   * @generated from rpc monitoring.MonitoringService.GetThroughputMetrics
   */
  getThroughputMetrics: {
    methodKind: "unary";
    input: typeof GetThroughputMetricsRequestSchema;
    output: typeof GetThroughputMetricsResponseSchema;
  },
  /**
   * Alerting and Notification System
   * Stream real-time system alerts and notifications
   *
   * @generated from rpc monitoring.MonitoringService.StreamAlerts
   */
  streamAlerts: {
    methodKind: "server_streaming";
    input: typeof StreamAlertsRequestSchema;
    output: typeof AlertEventSchema;
  },
  /**
   * Acknowledge an active alert
   *
   * @generated from rpc monitoring.MonitoringService.AcknowledgeAlert
   */
  acknowledgeAlert: {
    methodKind: "unary";
    input: typeof AcknowledgeAlertRequestSchema;
    output: typeof AcknowledgeAlertResponseSchema;
  },
  /**
   * Get all currently active alerts
   *
   * @generated from rpc monitoring.MonitoringService.GetActiveAlerts
   */
  getActiveAlerts: {
    methodKind: "unary";
    input: typeof GetActiveAlertsRequestSchema;
    output: typeof GetActiveAlertsResponseSchema;
  },
  /**
   * Training Metrics (from monitoring_service)
   * Single snapshot of all active training sessions
   *
   * @generated from rpc monitoring.MonitoringService.GetLiveTrainingMetrics
   */
  getLiveTrainingMetrics: {
    methodKind: "unary";
    input: typeof GetLiveTrainingMetricsRequestSchema;
    output: typeof GetLiveTrainingMetricsResponseSchema;
  },
  /**
   * Server-streaming: pushes updates every N seconds
   *
   * @generated from rpc monitoring.MonitoringService.StreamTrainingMetrics
   */
  streamTrainingMetrics: {
    methodKind: "server_streaming";
    input: typeof StreamTrainingMetricsRequestSchema;
    output: typeof GetLiveTrainingMetricsResponseSchema;
  },
  /**
   * Epoch history for a specific session (ring buffer, max 50 epochs)
   *
   * @generated from rpc monitoring.MonitoringService.GetEpochHistory
   */
  getEpochHistory: {
    methodKind: "unary";
    input: typeof GetEpochHistoryRequestSchema;
    output: typeof GetEpochHistoryResponseSchema;
  },
  /**
   * Kubernetes pod status — streams every N seconds
   *
   * @generated from rpc monitoring.MonitoringService.SubscribeClusterPods
   */
  subscribeClusterPods: {
    methodKind: "server_streaming";
    input: typeof SubscribeClusterPodsRequestSchema;
    output: typeof ClusterPodsResponseSchema;
  },
}>;

