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

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

/**
 * Describes the file ml.proto.
 */
export declare const file_ml: GenFile;

/**
 * @generated from message ml.StreamModelStatusRequest
 */
export declare type StreamModelStatusRequest = Message<"ml.StreamModelStatusRequest"> & {
  /**
   * empty = all models
   *
   * @generated from field: string model_name = 1;
   */
  modelName: string;

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

/**
 * Describes the message ml.StreamModelStatusRequest.
 * Use `create(StreamModelStatusRequestSchema)` to create a new message.
 */
export declare const StreamModelStatusRequestSchema: GenMessage<StreamModelStatusRequest>;

/**
 * Request for model prediction
 *
 * @generated from message ml.GetPredictionRequest
 */
export declare type GetPredictionRequest = Message<"ml.GetPredictionRequest"> & {
  /**
   * Model to use (e.g., "mamba2", "tlob-transformer")
   *
   * @generated from field: string model_name = 1;
   */
  modelName: string;

  /**
   * Trading symbol to predict
   *
   * @generated from field: string symbol = 2;
   */
  symbol: string;

  /**
   * Prediction horizon in minutes
   *
   * @generated from field: optional int32 horizon_minutes = 3;
   */
  horizonMinutes?: number;

  /**
   * Input features for prediction
   *
   * @generated from field: map<string, double> features = 4;
   */
  features: { [key: string]: number };
};

/**
 * Describes the message ml.GetPredictionRequest.
 * Use `create(GetPredictionRequestSchema)` to create a new message.
 */
export declare const GetPredictionRequestSchema: GenMessage<GetPredictionRequest>;

/**
 * Response containing model prediction
 *
 * @generated from message ml.GetPredictionResponse
 */
export declare type GetPredictionResponse = Message<"ml.GetPredictionResponse"> & {
  /**
   * Model prediction with details
   *
   * @generated from field: ml.Prediction prediction = 1;
   */
  prediction?: Prediction;

  /**
   * Prediction confidence (0.0 to 1.0)
   *
   * @generated from field: double confidence = 2;
   */
  confidence: number;

  /**
   * Prediction timestamp (nanoseconds)
   *
   * @generated from field: int64 timestamp = 3;
   */
  timestamp: bigint;
};

/**
 * Describes the message ml.GetPredictionResponse.
 * Use `create(GetPredictionResponseSchema)` to create a new message.
 */
export declare const GetPredictionResponseSchema: GenMessage<GetPredictionResponse>;

/**
 * @generated from message ml.StreamPredictionsRequest
 */
export declare type StreamPredictionsRequest = Message<"ml.StreamPredictionsRequest"> & {
  /**
   * @generated from field: repeated string model_names = 1;
   */
  modelNames: string[];

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

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

/**
 * Describes the message ml.StreamPredictionsRequest.
 * Use `create(StreamPredictionsRequestSchema)` to create a new message.
 */
export declare const StreamPredictionsRequestSchema: GenMessage<StreamPredictionsRequest>;

/**
 * @generated from message ml.GetEnsembleVoteRequest
 */
export declare type GetEnsembleVoteRequest = Message<"ml.GetEnsembleVoteRequest"> & {
  /**
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * @generated from field: optional int32 horizon_minutes = 2;
   */
  horizonMinutes?: number;

  /**
   * @generated from field: repeated string model_names = 3;
   */
  modelNames: string[];
};

/**
 * Describes the message ml.GetEnsembleVoteRequest.
 * Use `create(GetEnsembleVoteRequestSchema)` to create a new message.
 */
export declare const GetEnsembleVoteRequestSchema: GenMessage<GetEnsembleVoteRequest>;

/**
 * @generated from message ml.GetEnsembleVoteResponse
 */
export declare type GetEnsembleVoteResponse = Message<"ml.GetEnsembleVoteResponse"> & {
  /**
   * @generated from field: ml.EnsembleVote ensemble_vote = 1;
   */
  ensembleVote?: EnsembleVote;

  /**
   * @generated from field: repeated ml.ModelVote individual_votes = 2;
   */
  individualVotes: ModelVote[];

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

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

/**
 * Describes the message ml.GetEnsembleVoteResponse.
 * Use `create(GetEnsembleVoteResponseSchema)` to create a new message.
 */
export declare const GetEnsembleVoteResponseSchema: GenMessage<GetEnsembleVoteResponse>;

/**
 * Model Management Messages
 *
 * @generated from message ml.GetModelStatusRequest
 */
export declare type GetModelStatusRequest = Message<"ml.GetModelStatusRequest"> & {
  /**
   * @generated from field: optional string model_name = 1;
   */
  modelName?: string;
};

/**
 * Describes the message ml.GetModelStatusRequest.
 * Use `create(GetModelStatusRequestSchema)` to create a new message.
 */
export declare const GetModelStatusRequestSchema: GenMessage<GetModelStatusRequest>;

/**
 * @generated from message ml.GetModelStatusResponse
 */
export declare type GetModelStatusResponse = Message<"ml.GetModelStatusResponse"> & {
  /**
   * @generated from field: repeated ml.ModelStatus model_statuses = 1;
   */
  modelStatuses: ModelStatus[];
};

/**
 * Describes the message ml.GetModelStatusResponse.
 * Use `create(GetModelStatusResponseSchema)` to create a new message.
 */
export declare const GetModelStatusResponseSchema: GenMessage<GetModelStatusResponse>;

/**
 * @generated from message ml.GetAvailableModelsRequest
 */
export declare type GetAvailableModelsRequest = Message<"ml.GetAvailableModelsRequest"> & {
};

/**
 * Describes the message ml.GetAvailableModelsRequest.
 * Use `create(GetAvailableModelsRequestSchema)` to create a new message.
 */
export declare const GetAvailableModelsRequestSchema: GenMessage<GetAvailableModelsRequest>;

/**
 * @generated from message ml.GetAvailableModelsResponse
 */
export declare type GetAvailableModelsResponse = Message<"ml.GetAvailableModelsResponse"> & {
  /**
   * @generated from field: repeated ml.ModelInfo available_models = 1;
   */
  availableModels: ModelInfo[];
};

/**
 * Describes the message ml.GetAvailableModelsResponse.
 * Use `create(GetAvailableModelsResponseSchema)` to create a new message.
 */
export declare const GetAvailableModelsResponseSchema: GenMessage<GetAvailableModelsResponse>;

/**
 * @generated from message ml.RetrainModelRequest
 */
export declare type RetrainModelRequest = Message<"ml.RetrainModelRequest"> & {
  /**
   * @generated from field: string model_name = 1;
   */
  modelName: string;

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

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

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

/**
 * Describes the message ml.RetrainModelRequest.
 * Use `create(RetrainModelRequestSchema)` to create a new message.
 */
export declare const RetrainModelRequestSchema: GenMessage<RetrainModelRequest>;

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

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

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

  /**
   * @generated from field: int64 started_at = 4;
   */
  startedAt: bigint;
};

/**
 * Describes the message ml.RetrainModelResponse.
 * Use `create(RetrainModelResponseSchema)` to create a new message.
 */
export declare const RetrainModelResponseSchema: GenMessage<RetrainModelResponse>;

/**
 * Performance Messages
 *
 * @generated from message ml.GetModelPerformanceRequest
 */
export declare type GetModelPerformanceRequest = Message<"ml.GetModelPerformanceRequest"> & {
  /**
   * @generated from field: string model_name = 1;
   */
  modelName: string;

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

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

/**
 * Describes the message ml.GetModelPerformanceRequest.
 * Use `create(GetModelPerformanceRequestSchema)` to create a new message.
 */
export declare const GetModelPerformanceRequestSchema: GenMessage<GetModelPerformanceRequest>;

/**
 * @generated from message ml.GetModelPerformanceResponse
 */
export declare type GetModelPerformanceResponse = Message<"ml.GetModelPerformanceResponse"> & {
  /**
   * @generated from field: ml.ModelPerformance performance = 1;
   */
  performance?: ModelPerformance;
};

/**
 * Describes the message ml.GetModelPerformanceResponse.
 * Use `create(GetModelPerformanceResponseSchema)` to create a new message.
 */
export declare const GetModelPerformanceResponseSchema: GenMessage<GetModelPerformanceResponse>;

/**
 * @generated from message ml.StreamModelMetricsRequest
 */
export declare type StreamModelMetricsRequest = Message<"ml.StreamModelMetricsRequest"> & {
  /**
   * @generated from field: repeated string model_names = 1;
   */
  modelNames: string[];

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

/**
 * Describes the message ml.StreamModelMetricsRequest.
 * Use `create(StreamModelMetricsRequestSchema)` to create a new message.
 */
export declare const StreamModelMetricsRequestSchema: GenMessage<StreamModelMetricsRequest>;

/**
 * Feature Analysis Messages
 *
 * @generated from message ml.GetFeatureImportanceRequest
 */
export declare type GetFeatureImportanceRequest = Message<"ml.GetFeatureImportanceRequest"> & {
  /**
   * @generated from field: string model_name = 1;
   */
  modelName: string;

  /**
   * @generated from field: optional string symbol = 2;
   */
  symbol?: string;
};

/**
 * Describes the message ml.GetFeatureImportanceRequest.
 * Use `create(GetFeatureImportanceRequestSchema)` to create a new message.
 */
export declare const GetFeatureImportanceRequestSchema: GenMessage<GetFeatureImportanceRequest>;

/**
 * @generated from message ml.GetFeatureImportanceResponse
 */
export declare type GetFeatureImportanceResponse = Message<"ml.GetFeatureImportanceResponse"> & {
  /**
   * @generated from field: repeated ml.FeatureImportance feature_importances = 1;
   */
  featureImportances: FeatureImportance[];

  /**
   * @generated from field: string model_name = 2;
   */
  modelName: string;

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

/**
 * Describes the message ml.GetFeatureImportanceResponse.
 * Use `create(GetFeatureImportanceResponseSchema)` to create a new message.
 */
export declare const GetFeatureImportanceResponseSchema: GenMessage<GetFeatureImportanceResponse>;

/**
 * @generated from message ml.StreamSignalStrengthRequest
 */
export declare type StreamSignalStrengthRequest = Message<"ml.StreamSignalStrengthRequest"> & {
  /**
   * @generated from field: repeated string symbols = 1;
   */
  symbols: string[];

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

/**
 * Describes the message ml.StreamSignalStrengthRequest.
 * Use `create(StreamSignalStrengthRequestSchema)` to create a new message.
 */
export declare const StreamSignalStrengthRequestSchema: GenMessage<StreamSignalStrengthRequest>;

/**
 * Complete prediction information from a model
 *
 * @generated from message ml.Prediction
 */
export declare type Prediction = Message<"ml.Prediction"> & {
  /**
   * Model that generated prediction
   *
   * @generated from field: string model_name = 1;
   */
  modelName: string;

  /**
   * Trading symbol
   *
   * @generated from field: string symbol = 2;
   */
  symbol: string;

  /**
   * Type of prediction (buy/sell/hold/price direction)
   *
   * @generated from field: ml.PredictionType prediction_type = 3;
   */
  predictionType: PredictionType;

  /**
   * Predicted value (price change, probability, etc.)
   *
   * @generated from field: double value = 4;
   */
  value: number;

  /**
   * Model confidence in prediction (0.0 to 1.0)
   *
   * @generated from field: double confidence = 5;
   */
  confidence: number;

  /**
   * Prediction time horizon
   *
   * @generated from field: int32 horizon_minutes = 6;
   */
  horizonMinutes: number;

  /**
   * Input features used for prediction
   *
   * @generated from field: repeated ml.Feature features = 7;
   */
  features: Feature[];

  /**
   * Prediction generation timestamp (nanoseconds)
   *
   * @generated from field: int64 timestamp = 8;
   */
  timestamp: bigint;
};

/**
 * Describes the message ml.Prediction.
 * Use `create(PredictionSchema)` to create a new message.
 */
export declare const PredictionSchema: GenMessage<Prediction>;

/**
 * @generated from message ml.EnsembleVote
 */
export declare type EnsembleVote = Message<"ml.EnsembleVote"> & {
  /**
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * @generated from field: ml.PredictionType consensus_prediction = 2;
   */
  consensusPrediction: PredictionType;

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

  /**
   * @generated from field: int32 votes_buy = 4;
   */
  votesBuy: number;

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

  /**
   * @generated from field: int32 votes_hold = 6;
   */
  votesHold: number;

  /**
   * @generated from field: int32 total_models = 7;
   */
  totalModels: number;

  /**
   * @generated from field: ml.SignalStrength signal_strength = 8;
   */
  signalStrength: SignalStrength;
};

/**
 * Describes the message ml.EnsembleVote.
 * Use `create(EnsembleVoteSchema)` to create a new message.
 */
export declare const EnsembleVoteSchema: GenMessage<EnsembleVote>;

/**
 * @generated from message ml.ModelVote
 */
export declare type ModelVote = Message<"ml.ModelVote"> & {
  /**
   * @generated from field: string model_name = 1;
   */
  modelName: string;

  /**
   * @generated from field: ml.PredictionType prediction = 2;
   */
  prediction: PredictionType;

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

  /**
   * @generated from field: double weight = 4;
   */
  weight: number;
};

/**
 * Describes the message ml.ModelVote.
 * Use `create(ModelVoteSchema)` to create a new message.
 */
export declare const ModelVoteSchema: GenMessage<ModelVote>;

/**
 * @generated from message ml.ModelStatus
 */
export declare type ModelStatus = Message<"ml.ModelStatus"> & {
  /**
   * @generated from field: string model_name = 1;
   */
  modelName: string;

  /**
   * @generated from field: ml.ModelState state = 2;
   */
  state: ModelState;

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

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

  /**
   * @generated from field: int64 last_prediction = 5;
   */
  lastPrediction: bigint;

  /**
   * @generated from field: ml.ModelHealth health = 6;
   */
  health: ModelHealth;

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

/**
 * Describes the message ml.ModelStatus.
 * Use `create(ModelStatusSchema)` to create a new message.
 */
export declare const ModelStatusSchema: GenMessage<ModelStatus>;

/**
 * @generated from message ml.ModelInfo
 */
export declare type ModelInfo = Message<"ml.ModelInfo"> & {
  /**
   * @generated from field: string model_name = 1;
   */
  modelName: string;

  /**
   * @generated from field: string model_type = 2;
   */
  modelType: string;

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

  /**
   * @generated from field: repeated string supported_symbols = 4;
   */
  supportedSymbols: string[];

  /**
   * @generated from field: repeated int32 supported_horizons = 5;
   */
  supportedHorizons: number[];

  /**
   * @generated from field: ml.ModelCapabilities capabilities = 6;
   */
  capabilities?: ModelCapabilities;

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

/**
 * Describes the message ml.ModelInfo.
 * Use `create(ModelInfoSchema)` to create a new message.
 */
export declare const ModelInfoSchema: GenMessage<ModelInfo>;

/**
 * @generated from message ml.ModelPerformance
 */
export declare type ModelPerformance = Message<"ml.ModelPerformance"> & {
  /**
   * @generated from field: string model_name = 1;
   */
  modelName: string;

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

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

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

  /**
   * @generated from field: double f1_score = 5;
   */
  f1Score: number;

  /**
   * @generated from field: double sharpe_ratio = 6;
   */
  sharpeRatio: number;

  /**
   * @generated from field: double win_rate = 7;
   */
  winRate: number;

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

  /**
   * @generated from field: double max_drawdown = 9;
   */
  maxDrawdown: number;

  /**
   * @generated from field: int32 total_predictions = 10;
   */
  totalPredictions: number;

  /**
   * @generated from field: int64 performance_period_start = 11;
   */
  performancePeriodStart: bigint;

  /**
   * @generated from field: int64 performance_period_end = 12;
   */
  performancePeriodEnd: bigint;

  /**
   * @generated from field: repeated ml.DailyPerformance daily_performance = 13;
   */
  dailyPerformance: DailyPerformance[];
};

/**
 * Describes the message ml.ModelPerformance.
 * Use `create(ModelPerformanceSchema)` to create a new message.
 */
export declare const ModelPerformanceSchema: GenMessage<ModelPerformance>;

/**
 * @generated from message ml.DailyPerformance
 */
export declare type DailyPerformance = Message<"ml.DailyPerformance"> & {
  /**
   * @generated from field: string date = 1;
   */
  date: string;

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

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

  /**
   * @generated from field: int32 predictions_count = 4;
   */
  predictionsCount: number;

  /**
   * @generated from field: double sharpe_ratio = 5;
   */
  sharpeRatio: number;
};

/**
 * Describes the message ml.DailyPerformance.
 * Use `create(DailyPerformanceSchema)` to create a new message.
 */
export declare const DailyPerformanceSchema: GenMessage<DailyPerformance>;

/**
 * @generated from message ml.FeatureImportance
 */
export declare type FeatureImportance = Message<"ml.FeatureImportance"> & {
  /**
   * @generated from field: string feature_name = 1;
   */
  featureName: string;

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

  /**
   * @generated from field: ml.FeatureType feature_type = 3;
   */
  featureType: FeatureType;

  /**
   * @generated from field: double contribution_pct = 4;
   */
  contributionPct: number;
};

/**
 * Describes the message ml.FeatureImportance.
 * Use `create(FeatureImportanceSchema)` to create a new message.
 */
export declare const FeatureImportanceSchema: GenMessage<FeatureImportance>;

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

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

  /**
   * @generated from field: ml.FeatureType feature_type = 3;
   */
  featureType: FeatureType;

  /**
   * @generated from field: double normalized_value = 4;
   */
  normalizedValue: number;
};

/**
 * Describes the message ml.Feature.
 * Use `create(FeatureSchema)` to create a new message.
 */
export declare const FeatureSchema: GenMessage<Feature>;

/**
 * @generated from message ml.ModelCapabilities
 */
export declare type ModelCapabilities = Message<"ml.ModelCapabilities"> & {
  /**
   * @generated from field: bool supports_streaming = 1;
   */
  supportsStreaming: boolean;

  /**
   * @generated from field: bool supports_retraining = 2;
   */
  supportsRetraining: boolean;

  /**
   * @generated from field: bool supports_feature_importance = 3;
   */
  supportsFeatureImportance: boolean;

  /**
   * @generated from field: bool supports_confidence_intervals = 4;
   */
  supportsConfidenceIntervals: boolean;

  /**
   * @generated from field: repeated string supported_asset_classes = 5;
   */
  supportedAssetClasses: string[];
};

/**
 * Describes the message ml.ModelCapabilities.
 * Use `create(ModelCapabilitiesSchema)` to create a new message.
 */
export declare const ModelCapabilitiesSchema: GenMessage<ModelCapabilities>;

/**
 * Event Messages
 *
 * @generated from message ml.PredictionEvent
 */
export declare type PredictionEvent = Message<"ml.PredictionEvent"> & {
  /**
   * @generated from field: string model_name = 1;
   */
  modelName: string;

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

  /**
   * @generated from field: ml.Prediction prediction = 3;
   */
  prediction?: Prediction;

  /**
   * @generated from field: ml.PredictionEventType event_type = 4;
   */
  eventType: PredictionEventType;

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

/**
 * Describes the message ml.PredictionEvent.
 * Use `create(PredictionEventSchema)` to create a new message.
 */
export declare const PredictionEventSchema: GenMessage<PredictionEvent>;

/**
 * @generated from message ml.ModelMetricsEvent
 */
export declare type ModelMetricsEvent = Message<"ml.ModelMetricsEvent"> & {
  /**
   * @generated from field: string model_name = 1;
   */
  modelName: string;

  /**
   * @generated from field: ml.ModelMetrics metrics = 2;
   */
  metrics?: ModelMetrics;

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

/**
 * Describes the message ml.ModelMetricsEvent.
 * Use `create(ModelMetricsEventSchema)` to create a new message.
 */
export declare const ModelMetricsEventSchema: GenMessage<ModelMetricsEvent>;

/**
 * @generated from message ml.SignalStrengthEvent
 */
export declare type SignalStrengthEvent = Message<"ml.SignalStrengthEvent"> & {
  /**
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * @generated from field: ml.SignalStrength signal_strength = 2;
   */
  signalStrength: SignalStrength;

  /**
   * @generated from field: repeated ml.ModelSignal model_signals = 3;
   */
  modelSignals: ModelSignal[];

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

/**
 * Describes the message ml.SignalStrengthEvent.
 * Use `create(SignalStrengthEventSchema)` to create a new message.
 */
export declare const SignalStrengthEventSchema: GenMessage<SignalStrengthEvent>;

/**
 * @generated from message ml.ModelMetrics
 */
export declare type ModelMetrics = Message<"ml.ModelMetrics"> & {
  /**
   * @generated from field: string model_name = 1;
   */
  modelName: string;

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

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

  /**
   * @generated from field: double gpu_usage = 4;
   */
  gpuUsage: number;

  /**
   * @generated from field: double predictions_per_second = 5;
   */
  predictionsPerSecond: number;

  /**
   * @generated from field: double avg_inference_time_ms = 6;
   */
  avgInferenceTimeMs: number;

  /**
   * @generated from field: int32 queue_size = 7;
   */
  queueSize: number;

  /**
   * @generated from field: ml.ModelHealth health = 8;
   */
  health: ModelHealth;
};

/**
 * Describes the message ml.ModelMetrics.
 * Use `create(ModelMetricsSchema)` to create a new message.
 */
export declare const ModelMetricsSchema: GenMessage<ModelMetrics>;

/**
 * @generated from message ml.ModelSignal
 */
export declare type ModelSignal = Message<"ml.ModelSignal"> & {
  /**
   * @generated from field: string model_name = 1;
   */
  modelName: string;

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

  /**
   * @generated from field: ml.PredictionType direction = 3;
   */
  direction: PredictionType;

  /**
   * @generated from field: double confidence = 4;
   */
  confidence: number;
};

/**
 * Describes the message ml.ModelSignal.
 * Use `create(ModelSignalSchema)` to create a new message.
 */
export declare const ModelSignalSchema: GenMessage<ModelSignal>;

/**
 * Types of predictions that ML models can generate
 *
 * @generated from enum ml.PredictionType
 */
export enum PredictionType {
  /**
   * Default/unknown prediction type
   *
   * @generated from enum value: PREDICTION_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Recommendation to buy (go long)
   *
   * @generated from enum value: PREDICTION_TYPE_BUY = 1;
   */
  BUY = 1,

  /**
   * Recommendation to sell (go short)
   *
   * @generated from enum value: PREDICTION_TYPE_SELL = 2;
   */
  SELL = 2,

  /**
   * Recommendation to hold position
   *
   * @generated from enum value: PREDICTION_TYPE_HOLD = 3;
   */
  HOLD = 3,

  /**
   * Price expected to increase
   *
   * @generated from enum value: PREDICTION_TYPE_PRICE_UP = 4;
   */
  PRICE_UP = 4,

  /**
   * Price expected to decrease
   *
   * @generated from enum value: PREDICTION_TYPE_PRICE_DOWN = 5;
   */
  PRICE_DOWN = 5,

  /**
   * High volatility expected
   *
   * @generated from enum value: PREDICTION_TYPE_VOLATILITY_HIGH = 6;
   */
  VOLATILITY_HIGH = 6,

  /**
   * Low volatility expected
   *
   * @generated from enum value: PREDICTION_TYPE_VOLATILITY_LOW = 7;
   */
  VOLATILITY_LOW = 7,
}

/**
 * Describes the enum ml.PredictionType.
 */
export declare const PredictionTypeSchema: GenEnum<PredictionType>;

/**
 * Current operational state of ML models
 *
 * @generated from enum ml.ModelState
 */
export enum ModelState {
  /**
   * Default/unknown state
   *
   * @generated from enum value: MODEL_STATE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Model is loading from storage
   *
   * @generated from enum value: MODEL_STATE_LOADING = 1;
   */
  LOADING = 1,

  /**
   * Model loaded and ready for predictions
   *
   * @generated from enum value: MODEL_STATE_READY = 2;
   */
  READY = 2,

  /**
   * Model actively making predictions
   *
   * @generated from enum value: MODEL_STATE_PREDICTING = 3;
   */
  PREDICTING = 3,

  /**
   * Model is being retrained
   *
   * @generated from enum value: MODEL_STATE_TRAINING = 4;
   */
  TRAINING = 4,

  /**
   * Model encountered an error
   *
   * @generated from enum value: MODEL_STATE_ERROR = 5;
   */
  ERROR = 5,

  /**
   * Model is offline/disabled
   *
   * @generated from enum value: MODEL_STATE_OFFLINE = 6;
   */
  OFFLINE = 6,
}

/**
 * Describes the enum ml.ModelState.
 */
export declare const ModelStateSchema: GenEnum<ModelState>;

/**
 * Health status of ML models
 *
 * @generated from enum ml.ModelHealth
 */
export enum ModelHealth {
  /**
   * Default/unknown health
   *
   * @generated from enum value: MODEL_HEALTH_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Model operating normally
   *
   * @generated from enum value: MODEL_HEALTH_HEALTHY = 1;
   */
  HEALTHY = 1,

  /**
   * Model performance degraded
   *
   * @generated from enum value: MODEL_HEALTH_DEGRADED = 2;
   */
  DEGRADED = 2,

  /**
   * Model not performing well
   *
   * @generated from enum value: MODEL_HEALTH_UNHEALTHY = 3;
   */
  UNHEALTHY = 3,

  /**
   * Model in critical state
   *
   * @generated from enum value: MODEL_HEALTH_CRITICAL = 4;
   */
  CRITICAL = 4,
}

/**
 * Describes the enum ml.ModelHealth.
 */
export declare const ModelHealthSchema: GenEnum<ModelHealth>;

/**
 * Types of features used in ML models
 *
 * @generated from enum ml.FeatureType
 */
export enum FeatureType {
  /**
   * Default/unknown feature type
   *
   * @generated from enum value: FEATURE_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Price-based features (OHLC, etc.)
   *
   * @generated from enum value: FEATURE_TYPE_PRICE = 1;
   */
  PRICE = 1,

  /**
   * Volume-based features
   *
   * @generated from enum value: FEATURE_TYPE_VOLUME = 2;
   */
  VOLUME = 2,

  /**
   * Technical indicators (RSI, MACD, etc.)
   *
   * @generated from enum value: FEATURE_TYPE_TECHNICAL = 3;
   */
  TECHNICAL = 3,

  /**
   * Fundamental analysis features
   *
   * @generated from enum value: FEATURE_TYPE_FUNDAMENTAL = 4;
   */
  FUNDAMENTAL = 4,

  /**
   * Market sentiment features
   *
   * @generated from enum value: FEATURE_TYPE_SENTIMENT = 5;
   */
  SENTIMENT = 5,

  /**
   * Macroeconomic features
   *
   * @generated from enum value: FEATURE_TYPE_MACRO = 6;
   */
  MACRO = 6,

  /**
   * Time-based features
   *
   * @generated from enum value: FEATURE_TYPE_TIME = 7;
   */
  TIME = 7,

  /**
   * Order book depth and microstructure features
   *
   * @generated from enum value: FEATURE_TYPE_ORDERBOOK = 8;
   */
  ORDERBOOK = 8,

  /**
   * Market microstructure and flow features
   *
   * @generated from enum value: FEATURE_TYPE_MICROSTRUCTURE = 9;
   */
  MICROSTRUCTURE = 9,
}

/**
 * Describes the enum ml.FeatureType.
 */
export declare const FeatureTypeSchema: GenEnum<FeatureType>;

/**
 * Signal strength levels for predictions
 *
 * @generated from enum ml.SignalStrength
 */
export enum SignalStrength {
  /**
   * Default/unknown strength
   *
   * @generated from enum value: SIGNAL_STRENGTH_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Very weak signal confidence
   *
   * @generated from enum value: SIGNAL_STRENGTH_VERY_WEAK = 1;
   */
  VERY_WEAK = 1,

  /**
   * Weak signal confidence
   *
   * @generated from enum value: SIGNAL_STRENGTH_WEAK = 2;
   */
  WEAK = 2,

  /**
   * Moderate signal confidence
   *
   * @generated from enum value: SIGNAL_STRENGTH_MODERATE = 3;
   */
  MODERATE = 3,

  /**
   * Strong signal confidence
   *
   * @generated from enum value: SIGNAL_STRENGTH_STRONG = 4;
   */
  STRONG = 4,

  /**
   * Very strong signal confidence
   *
   * @generated from enum value: SIGNAL_STRENGTH_VERY_STRONG = 5;
   */
  VERY_STRONG = 5,
}

/**
 * Describes the enum ml.SignalStrength.
 */
export declare const SignalStrengthSchema: GenEnum<SignalStrength>;

/**
 * @generated from enum ml.PredictionEventType
 */
export enum PredictionEventType {
  /**
   * @generated from enum value: PREDICTION_EVENT_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: PREDICTION_EVENT_TYPE_NEW = 1;
   */
  NEW = 1,

  /**
   * @generated from enum value: PREDICTION_EVENT_TYPE_UPDATED = 2;
   */
  UPDATED = 2,

  /**
   * @generated from enum value: PREDICTION_EVENT_TYPE_EXPIRED = 3;
   */
  EXPIRED = 3,

  /**
   * @generated from enum value: PREDICTION_EVENT_TYPE_CONFIRMED = 4;
   */
  CONFIRMED = 4,
}

/**
 * Describes the enum ml.PredictionEventType.
 */
export declare const PredictionEventTypeSchema: GenEnum<PredictionEventType>;

/**
 * ML Service provides machine learning model management, predictions, and insights for trading decisions.
 * This service integrates multiple ML models including MAMBA-2, TLOB transformers, DQN, and PPO models
 * to provide real-time predictions, ensemble voting, and model performance monitoring.
 *
 * @generated from service ml.MLService
 */
export declare const MLService: GenService<{
  /**
   * Model Predictions and Inference
   * Get single prediction from a specific model
   *
   * @generated from rpc ml.MLService.GetPrediction
   */
  getPrediction: {
    methodKind: "unary";
    input: typeof GetPredictionRequestSchema;
    output: typeof GetPredictionResponseSchema;
  },
  /**
   * Stream real-time predictions from multiple models
   *
   * @generated from rpc ml.MLService.StreamPredictions
   */
  streamPredictions: {
    methodKind: "server_streaming";
    input: typeof StreamPredictionsRequestSchema;
    output: typeof PredictionEventSchema;
  },
  /**
   * Get ensemble voting results from multiple models
   *
   * @generated from rpc ml.MLService.GetEnsembleVote
   */
  getEnsembleVote: {
    methodKind: "unary";
    input: typeof GetEnsembleVoteRequestSchema;
    output: typeof GetEnsembleVoteResponseSchema;
  },
  /**
   * Model Lifecycle Management
   * Get current status of ML models (health, performance, etc.)
   *
   * @generated from rpc ml.MLService.GetModelStatus
   */
  getModelStatus: {
    methodKind: "unary";
    input: typeof GetModelStatusRequestSchema;
    output: typeof GetModelStatusResponseSchema;
  },
  /**
   * List all available models and their capabilities
   *
   * @generated from rpc ml.MLService.GetAvailableModels
   */
  getAvailableModels: {
    methodKind: "unary";
    input: typeof GetAvailableModelsRequestSchema;
    output: typeof GetAvailableModelsResponseSchema;
  },
  /**
   * Trigger model retraining with new data
   *
   * @generated from rpc ml.MLService.RetrainModel
   */
  retrainModel: {
    methodKind: "unary";
    input: typeof RetrainModelRequestSchema;
    output: typeof RetrainModelResponseSchema;
  },
  /**
   * Model Performance and Analytics
   * Get comprehensive performance metrics for a model
   *
   * @generated from rpc ml.MLService.GetModelPerformance
   */
  getModelPerformance: {
    methodKind: "unary";
    input: typeof GetModelPerformanceRequestSchema;
    output: typeof GetModelPerformanceResponseSchema;
  },
  /**
   * Stream real-time model performance metrics
   *
   * @generated from rpc ml.MLService.StreamModelMetrics
   */
  streamModelMetrics: {
    methodKind: "server_streaming";
    input: typeof StreamModelMetricsRequestSchema;
    output: typeof ModelMetricsEventSchema;
  },
  /**
   * Feature Analysis and Signal Intelligence
   * Get feature importance analysis for model interpretation
   *
   * @generated from rpc ml.MLService.GetFeatureImportance
   */
  getFeatureImportance: {
    methodKind: "unary";
    input: typeof GetFeatureImportanceRequestSchema;
    output: typeof GetFeatureImportanceResponseSchema;
  },
  /**
   * Stream real-time signal strength indicators across models
   *
   * @generated from rpc ml.MLService.StreamSignalStrength
   */
  streamSignalStrength: {
    methodKind: "server_streaming";
    input: typeof StreamSignalStrengthRequestSchema;
    output: typeof SignalStrengthEventSchema;
  },
  /**
   * Server-streaming: polls GetModelStatus at gateway level
   *
   * @generated from rpc ml.MLService.StreamModelStatus
   */
  streamModelStatus: {
    methodKind: "server_streaming";
    input: typeof StreamModelStatusRequestSchema;
    output: typeof GetModelStatusResponseSchema;
  },
}>;

