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

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

/**
 * Describes the file ml_training.proto.
 */
export declare const file_ml_training: GenFile;

/**
 * Request to start a new model training job
 *
 * @generated from message ml_training.StartTrainingRequest
 */
export declare type StartTrainingRequest = Message<"ml_training.StartTrainingRequest"> & {
  /**
   * Model type ("TLOB", "MAMBA_2", "DQN", "PPO", "LIQUID", "TFT")
   *
   * @generated from field: string model_type = 1;
   */
  modelType: string;

  /**
   * Training data source configuration
   *
   * @generated from field: ml_training.DataSource data_source = 2;
   */
  dataSource?: DataSource;

  /**
   * Model-specific training parameters
   *
   * @generated from field: ml_training.Hyperparameters hyperparameters = 3;
   */
  hyperparameters?: Hyperparameters;

  /**
   * Whether to use GPU acceleration
   *
   * @generated from field: bool use_gpu = 4;
   */
  useGpu: boolean;

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

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

  /**
   * FULL (default) or FINE_TUNE
   *
   * @generated from field: ml_training.TrainingMode mode = 7;
   */
  mode: TrainingMode;

  /**
   * Path to checkpoint for fine-tune
   *
   * @generated from field: string resume_checkpoint_path = 8;
   */
  resumeCheckpointPath: string;

  /**
   * Override epoch count (0 = use default)
   *
   * @generated from field: uint32 max_epochs = 9;
   */
  maxEpochs: number;
};

/**
 * Describes the message ml_training.StartTrainingRequest.
 * Use `create(StartTrainingRequestSchema)` to create a new message.
 */
export declare const StartTrainingRequestSchema: GenMessage<StartTrainingRequest>;

/**
 * @generated from message ml_training.StartTrainingResponse
 */
export declare type StartTrainingResponse = Message<"ml_training.StartTrainingResponse"> & {
  /**
   * @generated from field: string job_id = 1;
   */
  jobId: string;

  /**
   * @generated from field: ml_training.TrainingStatus status = 2;
   */
  status: TrainingStatus;

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

/**
 * Describes the message ml_training.StartTrainingResponse.
 * Use `create(StartTrainingResponseSchema)` to create a new message.
 */
export declare const StartTrainingResponseSchema: GenMessage<StartTrainingResponse>;

/**
 * @generated from message ml_training.SubscribeToTrainingStatusRequest
 */
export declare type SubscribeToTrainingStatusRequest = Message<"ml_training.SubscribeToTrainingStatusRequest"> & {
  /**
   * @generated from field: string job_id = 1;
   */
  jobId: string;
};

/**
 * Describes the message ml_training.SubscribeToTrainingStatusRequest.
 * Use `create(SubscribeToTrainingStatusRequestSchema)` to create a new message.
 */
export declare const SubscribeToTrainingStatusRequestSchema: GenMessage<SubscribeToTrainingStatusRequest>;

/**
 * Real-time training progress update streamed from server
 *
 * @generated from message ml_training.TrainingStatusUpdate
 */
export declare type TrainingStatusUpdate = Message<"ml_training.TrainingStatusUpdate"> & {
  /**
   * Training job identifier
   *
   * @generated from field: string job_id = 1;
   */
  jobId: string;

  /**
   * Current job status
   *
   * @generated from field: ml_training.TrainingStatus status = 2;
   */
  status: TrainingStatus;

  /**
   * Training progress (0.0 to 100.0)
   *
   * @generated from field: float progress_percentage = 3;
   */
  progressPercentage: number;

  /**
   * Current training epoch
   *
   * @generated from field: uint32 current_epoch = 4;
   */
  currentEpoch: number;

  /**
   * Total epochs planned
   *
   * @generated from field: uint32 total_epochs = 5;
   */
  totalEpochs: number;

  /**
   * Training metrics (loss, accuracy, sharpe_ratio, etc.)
   *
   * @generated from field: map<string, float> metrics = 6;
   */
  metrics: { [key: string]: number };

  /**
   * Human-readable status message
   *
   * @generated from field: string message = 7;
   */
  message: string;

  /**
   * Update timestamp (Unix seconds)
   *
   * @generated from field: int64 timestamp = 8;
   */
  timestamp: bigint;

  /**
   * Financial performance metrics
   *
   * @generated from field: ml_training.FinancialMetrics financial_metrics = 9;
   */
  financialMetrics?: FinancialMetrics;

  /**
   * Current resource utilization
   *
   * @generated from field: ml_training.ResourceUsage resource_usage = 10;
   */
  resourceUsage?: ResourceUsage;
};

/**
 * Describes the message ml_training.TrainingStatusUpdate.
 * Use `create(TrainingStatusUpdateSchema)` to create a new message.
 */
export declare const TrainingStatusUpdateSchema: GenMessage<TrainingStatusUpdate>;

/**
 * @generated from message ml_training.StopTrainingRequest
 */
export declare type StopTrainingRequest = Message<"ml_training.StopTrainingRequest"> & {
  /**
   * @generated from field: string job_id = 1;
   */
  jobId: string;

  /**
   * Optional reason for stopping
   *
   * @generated from field: string reason = 2;
   */
  reason: string;
};

/**
 * Describes the message ml_training.StopTrainingRequest.
 * Use `create(StopTrainingRequestSchema)` to create a new message.
 */
export declare const StopTrainingRequestSchema: GenMessage<StopTrainingRequest>;

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

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

/**
 * Describes the message ml_training.StopTrainingResponse.
 * Use `create(StopTrainingResponseSchema)` to create a new message.
 */
export declare const StopTrainingResponseSchema: GenMessage<StopTrainingResponse>;

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

/**
 * Describes the message ml_training.ListAvailableModelsRequest.
 * Use `create(ListAvailableModelsRequestSchema)` to create a new message.
 */
export declare const ListAvailableModelsRequestSchema: GenMessage<ListAvailableModelsRequest>;

/**
 * @generated from message ml_training.ListAvailableModelsResponse
 */
export declare type ListAvailableModelsResponse = Message<"ml_training.ListAvailableModelsResponse"> & {
  /**
   * @generated from field: repeated ml_training.ModelDefinition models = 1;
   */
  models: ModelDefinition[];
};

/**
 * Describes the message ml_training.ListAvailableModelsResponse.
 * Use `create(ListAvailableModelsResponseSchema)` to create a new message.
 */
export declare const ListAvailableModelsResponseSchema: GenMessage<ListAvailableModelsResponse>;

/**
 * @generated from message ml_training.ListTrainingJobsRequest
 */
export declare type ListTrainingJobsRequest = Message<"ml_training.ListTrainingJobsRequest"> & {
  /**
   * @generated from field: uint32 page = 1;
   */
  page: number;

  /**
   * @generated from field: uint32 page_size = 2;
   */
  pageSize: number;

  /**
   * @generated from field: ml_training.TrainingStatus status_filter = 3;
   */
  statusFilter: TrainingStatus;

  /**
   * @generated from field: string model_type_filter = 4;
   */
  modelTypeFilter: string;

  /**
   * Unix timestamp in seconds
   *
   * @generated from field: int64 start_time = 5;
   */
  startTime: bigint;

  /**
   * Unix timestamp in seconds
   *
   * @generated from field: int64 end_time = 6;
   */
  endTime: bigint;
};

/**
 * Describes the message ml_training.ListTrainingJobsRequest.
 * Use `create(ListTrainingJobsRequestSchema)` to create a new message.
 */
export declare const ListTrainingJobsRequestSchema: GenMessage<ListTrainingJobsRequest>;

/**
 * @generated from message ml_training.ListTrainingJobsResponse
 */
export declare type ListTrainingJobsResponse = Message<"ml_training.ListTrainingJobsResponse"> & {
  /**
   * @generated from field: repeated ml_training.TrainingJobSummary jobs = 1;
   */
  jobs: TrainingJobSummary[];

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

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

  /**
   * @generated from field: uint32 page_size = 4;
   */
  pageSize: number;
};

/**
 * Describes the message ml_training.ListTrainingJobsResponse.
 * Use `create(ListTrainingJobsResponseSchema)` to create a new message.
 */
export declare const ListTrainingJobsResponseSchema: GenMessage<ListTrainingJobsResponse>;

/**
 * @generated from message ml_training.GetTrainingJobDetailsRequest
 */
export declare type GetTrainingJobDetailsRequest = Message<"ml_training.GetTrainingJobDetailsRequest"> & {
  /**
   * @generated from field: string job_id = 1;
   */
  jobId: string;
};

/**
 * Describes the message ml_training.GetTrainingJobDetailsRequest.
 * Use `create(GetTrainingJobDetailsRequestSchema)` to create a new message.
 */
export declare const GetTrainingJobDetailsRequestSchema: GenMessage<GetTrainingJobDetailsRequest>;

/**
 * @generated from message ml_training.GetTrainingJobDetailsResponse
 */
export declare type GetTrainingJobDetailsResponse = Message<"ml_training.GetTrainingJobDetailsResponse"> & {
  /**
   * @generated from field: ml_training.TrainingJobDetails job_details = 1;
   */
  jobDetails?: TrainingJobDetails;
};

/**
 * Describes the message ml_training.GetTrainingJobDetailsResponse.
 * Use `create(GetTrainingJobDetailsResponseSchema)` to create a new message.
 */
export declare const GetTrainingJobDetailsResponseSchema: GenMessage<GetTrainingJobDetailsResponse>;

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

/**
 * Describes the message ml_training.HealthCheckRequest.
 * Use `create(HealthCheckRequestSchema)` to create a new message.
 */
export declare const HealthCheckRequestSchema: GenMessage<HealthCheckRequest>;

/**
 * @generated from message ml_training.HealthCheckResponse
 */
export declare type HealthCheckResponse = Message<"ml_training.HealthCheckResponse"> & {
  /**
   * @generated from field: bool healthy = 1;
   */
  healthy: boolean;

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

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

/**
 * Describes the message ml_training.HealthCheckResponse.
 * Use `create(HealthCheckResponseSchema)` to create a new message.
 */
export declare const HealthCheckResponseSchema: GenMessage<HealthCheckResponse>;

/**
 * Request to start hyperparameter tuning job
 *
 * @generated from message ml_training.StartTuningJobRequest
 */
export declare type StartTuningJobRequest = Message<"ml_training.StartTuningJobRequest"> & {
  /**
   * Model type to tune ("TLOB", "MAMBA_2", "DQN", "PPO", "LIQUID", "TFT")
   *
   * @generated from field: string model_type = 1;
   */
  modelType: string;

  /**
   * Number of tuning trials to run
   *
   * @generated from field: uint32 num_trials = 2;
   */
  numTrials: number;

  /**
   * Path to tuning configuration file (search space, objectives)
   *
   * @generated from field: string config_path = 3;
   */
  configPath: string;

  /**
   * Training data source for all trials
   *
   * @generated from field: ml_training.DataSource data_source = 4;
   */
  dataSource?: DataSource;

  /**
   * Whether to use GPU acceleration
   *
   * @generated from field: bool use_gpu = 5;
   */
  useGpu: boolean;

  /**
   * Optional job description
   *
   * @generated from field: string description = 6;
   */
  description: string;

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

/**
 * Describes the message ml_training.StartTuningJobRequest.
 * Use `create(StartTuningJobRequestSchema)` to create a new message.
 */
export declare const StartTuningJobRequestSchema: GenMessage<StartTuningJobRequest>;

/**
 * @generated from message ml_training.StartTuningJobResponse
 */
export declare type StartTuningJobResponse = Message<"ml_training.StartTuningJobResponse"> & {
  /**
   * Unique tuning job identifier
   *
   * @generated from field: string job_id = 1;
   */
  jobId: string;

  /**
   * Initial job status
   *
   * @generated from field: ml_training.TuningJobStatus status = 2;
   */
  status: TuningJobStatus;

  /**
   * Human-readable status message
   *
   * @generated from field: string message = 3;
   */
  message: string;
};

/**
 * Describes the message ml_training.StartTuningJobResponse.
 * Use `create(StartTuningJobResponseSchema)` to create a new message.
 */
export declare const StartTuningJobResponseSchema: GenMessage<StartTuningJobResponse>;

/**
 * Request to query tuning job status
 *
 * @generated from message ml_training.GetTuningJobStatusRequest
 */
export declare type GetTuningJobStatusRequest = Message<"ml_training.GetTuningJobStatusRequest"> & {
  /**
   * Tuning job identifier
   *
   * @generated from field: string job_id = 1;
   */
  jobId: string;
};

/**
 * Describes the message ml_training.GetTuningJobStatusRequest.
 * Use `create(GetTuningJobStatusRequestSchema)` to create a new message.
 */
export declare const GetTuningJobStatusRequestSchema: GenMessage<GetTuningJobStatusRequest>;

/**
 * @generated from message ml_training.GetTuningJobStatusResponse
 */
export declare type GetTuningJobStatusResponse = Message<"ml_training.GetTuningJobStatusResponse"> & {
  /**
   * Tuning job identifier
   *
   * @generated from field: string job_id = 1;
   */
  jobId: string;

  /**
   * Current job status
   *
   * @generated from field: ml_training.TuningJobStatus status = 2;
   */
  status: TuningJobStatus;

  /**
   * Current trial number (0-indexed)
   *
   * @generated from field: uint32 current_trial = 3;
   */
  currentTrial: number;

  /**
   * Total number of trials
   *
   * @generated from field: uint32 total_trials = 4;
   */
  totalTrials: number;

  /**
   * Best hyperparameters found so far
   *
   * @generated from field: map<string, float> best_params = 5;
   */
  bestParams: { [key: string]: number };

  /**
   * Metrics for best parameters (sharpe_ratio, training_loss, etc.)
   *
   * @generated from field: map<string, float> best_metrics = 6;
   */
  bestMetrics: { [key: string]: number };

  /**
   * Complete trial history
   *
   * @generated from field: repeated ml_training.TrialResult trial_history = 7;
   */
  trialHistory: TrialResult[];

  /**
   * Human-readable status message
   *
   * @generated from field: string message = 8;
   */
  message: string;

  /**
   * Job start time (Unix timestamp in seconds)
   *
   * @generated from field: int64 started_at = 9;
   */
  startedAt: bigint;

  /**
   * Last update time (Unix timestamp in seconds)
   *
   * @generated from field: int64 updated_at = 10;
   */
  updatedAt: bigint;
};

/**
 * Describes the message ml_training.GetTuningJobStatusResponse.
 * Use `create(GetTuningJobStatusResponseSchema)` to create a new message.
 */
export declare const GetTuningJobStatusResponseSchema: GenMessage<GetTuningJobStatusResponse>;

/**
 * Request to stop a tuning job
 *
 * @generated from message ml_training.StopTuningJobRequest
 */
export declare type StopTuningJobRequest = Message<"ml_training.StopTuningJobRequest"> & {
  /**
   * Tuning job identifier
   *
   * @generated from field: string job_id = 1;
   */
  jobId: string;

  /**
   * Optional reason for stopping
   *
   * @generated from field: string reason = 2;
   */
  reason: string;
};

/**
 * Describes the message ml_training.StopTuningJobRequest.
 * Use `create(StopTuningJobRequestSchema)` to create a new message.
 */
export declare const StopTuningJobRequestSchema: GenMessage<StopTuningJobRequest>;

/**
 * @generated from message ml_training.StopTuningJobResponse
 */
export declare type StopTuningJobResponse = Message<"ml_training.StopTuningJobResponse"> & {
  /**
   * Whether stop was successful
   *
   * @generated from field: bool success = 1;
   */
  success: boolean;

  /**
   * Human-readable status message
   *
   * @generated from field: string message = 2;
   */
  message: string;

  /**
   * Final job status after stopping
   *
   * @generated from field: ml_training.TuningJobStatus final_status = 3;
   */
  finalStatus: TuningJobStatus;
};

/**
 * Describes the message ml_training.StopTuningJobResponse.
 * Use `create(StopTuningJobResponseSchema)` to create a new message.
 */
export declare const StopTuningJobResponseSchema: GenMessage<StopTuningJobResponse>;

/**
 * INTERNAL: Request to train a model with specific hyperparameters (called by Optuna)
 *
 * @generated from message ml_training.TrainModelRequest
 */
export declare type TrainModelRequest = Message<"ml_training.TrainModelRequest"> & {
  /**
   * Model type ("TLOB", "MAMBA_2", "DQN", "PPO", "LIQUID", "TFT")
   *
   * @generated from field: string model_type = 1;
   */
  modelType: string;

  /**
   * Hyperparameters to use for this trial
   *
   * @generated from field: map<string, float> hyperparameters = 2;
   */
  hyperparameters: { [key: string]: number };

  /**
   * Training data source
   *
   * @generated from field: ml_training.DataSource data_source = 3;
   */
  dataSource?: DataSource;

  /**
   * Whether to use GPU acceleration
   *
   * @generated from field: bool use_gpu = 4;
   */
  useGpu: boolean;

  /**
   * Optuna trial identifier for tracking
   *
   * @generated from field: string trial_id = 5;
   */
  trialId: string;
};

/**
 * Describes the message ml_training.TrainModelRequest.
 * Use `create(TrainModelRequestSchema)` to create a new message.
 */
export declare const TrainModelRequestSchema: GenMessage<TrainModelRequest>;

/**
 * @generated from message ml_training.TrainModelResponse
 */
export declare type TrainModelResponse = Message<"ml_training.TrainModelResponse"> & {
  /**
   * Whether training succeeded
   *
   * @generated from field: bool success = 1;
   */
  success: boolean;

  /**
   * Primary optimization objective (Sharpe ratio)
   *
   * @generated from field: float sharpe_ratio = 2;
   */
  sharpeRatio: number;

  /**
   * Final training loss
   *
   * @generated from field: float training_loss = 3;
   */
  trainingLoss: number;

  /**
   * Additional validation metrics
   *
   * @generated from field: map<string, float> validation_metrics = 4;
   */
  validationMetrics: { [key: string]: number };

  /**
   * Error message if training failed
   *
   * @generated from field: string error_message = 5;
   */
  errorMessage: string;

  /**
   * Total training time
   *
   * @generated from field: int64 training_duration_seconds = 6;
   */
  trainingDurationSeconds: bigint;
};

/**
 * Describes the message ml_training.TrainModelResponse.
 * Use `create(TrainModelResponseSchema)` to create a new message.
 */
export declare const TrainModelResponseSchema: GenMessage<TrainModelResponse>;

/**
 * Individual trial result for tuning job history
 *
 * @generated from message ml_training.TrialResult
 */
export declare type TrialResult = Message<"ml_training.TrialResult"> & {
  /**
   * Trial index
   *
   * @generated from field: uint32 trial_number = 1;
   */
  trialNumber: number;

  /**
   * Hyperparameters tested
   *
   * @generated from field: map<string, float> params = 2;
   */
  params: { [key: string]: number };

  /**
   * Objective metric (e.g., Sharpe ratio)
   *
   * @generated from field: float objective_value = 3;
   */
  objectiveValue: number;

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

  /**
   * Trial outcome state
   *
   * @generated from field: ml_training.TrialState state = 5;
   */
  state: TrialState;

  /**
   * Trial start time (Unix timestamp in seconds)
   *
   * @generated from field: int64 started_at = 6;
   */
  startedAt: bigint;

  /**
   * Trial completion time (Unix timestamp in seconds)
   *
   * @generated from field: int64 completed_at = 7;
   */
  completedAt: bigint;
};

/**
 * Describes the message ml_training.TrialResult.
 * Use `create(TrialResultSchema)` to create a new message.
 */
export declare const TrialResultSchema: GenMessage<TrialResult>;

/**
 * Request to stream tuning progress updates
 *
 * @generated from message ml_training.StreamProgressRequest
 */
export declare type StreamProgressRequest = Message<"ml_training.StreamProgressRequest"> & {
  /**
   * Tuning job identifier to subscribe to
   *
   * @generated from field: string job_id = 1;
   */
  jobId: string;
};

/**
 * Describes the message ml_training.StreamProgressRequest.
 * Use `create(StreamProgressRequestSchema)` to create a new message.
 */
export declare const StreamProgressRequestSchema: GenMessage<StreamProgressRequest>;

/**
 * Real-time progress update streamed after each trial completes
 *
 * @generated from message ml_training.ProgressUpdate
 */
export declare type ProgressUpdate = Message<"ml_training.ProgressUpdate"> & {
  /**
   * Tuning job identifier
   *
   * @generated from field: string job_id = 1;
   */
  jobId: string;

  /**
   * Current trial number (0-indexed)
   *
   * @generated from field: uint32 current_trial = 2;
   */
  currentTrial: number;

  /**
   * Total number of trials
   *
   * @generated from field: uint32 total_trials = 3;
   */
  totalTrials: number;

  /**
   * Current trial hyperparameters (as strings for display)
   *
   * @generated from field: map<string, string> trial_params = 4;
   */
  trialParams: { [key: string]: string };

  /**
   * Current trial's Sharpe ratio (objective value)
   *
   * @generated from field: float trial_sharpe = 5;
   */
  trialSharpe: number;

  /**
   * Best Sharpe ratio achieved so far
   *
   * @generated from field: float best_sharpe_so_far = 6;
   */
  bestSharpeSoFar: number;

  /**
   * Estimated seconds until completion
   *
   * @generated from field: uint32 estimated_time_remaining = 7;
   */
  estimatedTimeRemaining: number;

  /**
   * Current job status
   *
   * @generated from field: ml_training.TuningJobStatus status = 8;
   */
  status: TuningJobStatus;

  /**
   * Human-readable status message
   *
   * @generated from field: string message = 9;
   */
  message: string;

  /**
   * Update timestamp (Unix seconds)
   *
   * @generated from field: int64 timestamp = 10;
   */
  timestamp: bigint;

  /**
   * Type of update (trial completion, heartbeat, job complete)
   *
   * @generated from field: ml_training.UpdateType update_type = 11;
   */
  updateType: UpdateType;
};

/**
 * Describes the message ml_training.ProgressUpdate.
 * Use `create(ProgressUpdateSchema)` to create a new message.
 */
export declare const ProgressUpdateSchema: GenMessage<ProgressUpdate>;

/**
 * @generated from message ml_training.DataSource
 */
export declare type DataSource = Message<"ml_training.DataSource"> & {
  /**
   * @generated from oneof ml_training.DataSource.source
   */
  source: {
    /**
     * @generated from field: string historical_db_query = 1;
     */
    value: string;
    case: "historicalDbQuery";
  } | {
    /**
     * @generated from field: string real_time_stream_topic = 2;
     */
    value: string;
    case: "realTimeStreamTopic";
  } | {
    /**
     * @generated from field: string file_path = 3;
     */
    value: string;
    case: "filePath";
  } | { case: undefined; value?: undefined };

  /**
   * Unix timestamp in seconds
   *
   * @generated from field: int64 start_time = 4;
   */
  startTime: bigint;

  /**
   * Unix timestamp in seconds
   *
   * @generated from field: int64 end_time = 5;
   */
  endTime: bigint;
};

/**
 * Describes the message ml_training.DataSource.
 * Use `create(DataSourceSchema)` to create a new message.
 */
export declare const DataSourceSchema: GenMessage<DataSource>;

/**
 * Provides type-safe hyperparameter configuration.
 *
 * @generated from message ml_training.Hyperparameters
 */
export declare type Hyperparameters = Message<"ml_training.Hyperparameters"> & {
  /**
   * @generated from oneof ml_training.Hyperparameters.model_params
   */
  modelParams: {
    /**
     * @generated from field: ml_training.TlobParams tlob_params = 1;
     */
    value: TlobParams;
    case: "tlobParams";
  } | {
    /**
     * @generated from field: ml_training.MambaParams mamba_params = 2;
     */
    value: MambaParams;
    case: "mambaParams";
  } | {
    /**
     * @generated from field: ml_training.DqnParams dqn_params = 3;
     */
    value: DqnParams;
    case: "dqnParams";
  } | {
    /**
     * @generated from field: ml_training.PpoParams ppo_params = 4;
     */
    value: PpoParams;
    case: "ppoParams";
  } | {
    /**
     * @generated from field: ml_training.LiquidParams liquid_params = 5;
     */
    value: LiquidParams;
    case: "liquidParams";
  } | {
    /**
     * @generated from field: ml_training.TftParams tft_params = 6;
     */
    value: TftParams;
    case: "tftParams";
  } | { case: undefined; value?: undefined };
};

/**
 * Describes the message ml_training.Hyperparameters.
 * Use `create(HyperparametersSchema)` to create a new message.
 */
export declare const HyperparametersSchema: GenMessage<Hyperparameters>;

/**
 * TLOB (Time-Limit Order Book) Transformer parameters
 *
 * @generated from message ml_training.TlobParams
 */
export declare type TlobParams = Message<"ml_training.TlobParams"> & {
  /**
   * @generated from field: uint32 epochs = 1;
   */
  epochs: number;

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

  /**
   * @generated from field: uint32 batch_size = 3;
   */
  batchSize: number;

  /**
   * @generated from field: uint32 sequence_length = 4;
   */
  sequenceLength: number;

  /**
   * @generated from field: uint32 hidden_dim = 5;
   */
  hiddenDim: number;

  /**
   * @generated from field: uint32 num_heads = 6;
   */
  numHeads: number;

  /**
   * @generated from field: uint32 num_layers = 7;
   */
  numLayers: number;

  /**
   * @generated from field: float dropout_rate = 8;
   */
  dropoutRate: number;

  /**
   * @generated from field: bool use_positional_encoding = 9;
   */
  usePositionalEncoding: boolean;
};

/**
 * Describes the message ml_training.TlobParams.
 * Use `create(TlobParamsSchema)` to create a new message.
 */
export declare const TlobParamsSchema: GenMessage<TlobParams>;

/**
 * MAMBA-2 State Space Model parameters
 *
 * @generated from message ml_training.MambaParams
 */
export declare type MambaParams = Message<"ml_training.MambaParams"> & {
  /**
   * @generated from field: uint32 epochs = 1;
   */
  epochs: number;

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

  /**
   * @generated from field: uint32 batch_size = 3;
   */
  batchSize: number;

  /**
   * @generated from field: uint32 state_dim = 4;
   */
  stateDim: number;

  /**
   * @generated from field: uint32 hidden_dim = 5;
   */
  hiddenDim: number;

  /**
   * @generated from field: uint32 num_layers = 6;
   */
  numLayers: number;

  /**
   * @generated from field: float dt_min = 7;
   */
  dtMin: number;

  /**
   * @generated from field: float dt_max = 8;
   */
  dtMax: number;

  /**
   * @generated from field: bool use_cuda_kernels = 9;
   */
  useCudaKernels: boolean;
};

/**
 * Describes the message ml_training.MambaParams.
 * Use `create(MambaParamsSchema)` to create a new message.
 */
export declare const MambaParamsSchema: GenMessage<MambaParams>;

/**
 * DQN (Deep Q-Network) parameters
 *
 * @generated from message ml_training.DqnParams
 */
export declare type DqnParams = Message<"ml_training.DqnParams"> & {
  /**
   * @generated from field: uint32 epochs = 1;
   */
  epochs: number;

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

  /**
   * @generated from field: uint32 batch_size = 3;
   */
  batchSize: number;

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

  /**
   * @generated from field: float epsilon_start = 5;
   */
  epsilonStart: number;

  /**
   * @generated from field: float epsilon_end = 6;
   */
  epsilonEnd: number;

  /**
   * @generated from field: uint32 epsilon_decay_steps = 7;
   */
  epsilonDecaySteps: number;

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

  /**
   * @generated from field: uint32 target_update_frequency = 9;
   */
  targetUpdateFrequency: number;

  /**
   * @generated from field: bool use_double_dqn = 10;
   */
  useDoubleDqn: boolean;

  /**
   * @generated from field: bool use_dueling = 11;
   */
  useDueling: boolean;

  /**
   * @generated from field: bool use_prioritized_replay = 12;
   */
  usePrioritizedReplay: boolean;
};

/**
 * Describes the message ml_training.DqnParams.
 * Use `create(DqnParamsSchema)` to create a new message.
 */
export declare const DqnParamsSchema: GenMessage<DqnParams>;

/**
 * PPO (Proximal Policy Optimization) parameters
 *
 * @generated from message ml_training.PpoParams
 */
export declare type PpoParams = Message<"ml_training.PpoParams"> & {
  /**
   * @generated from field: uint32 epochs = 1;
   */
  epochs: number;

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

  /**
   * @generated from field: uint32 batch_size = 3;
   */
  batchSize: number;

  /**
   * @generated from field: float clip_ratio = 4;
   */
  clipRatio: number;

  /**
   * @generated from field: float value_loss_coef = 5;
   */
  valueLossCoef: number;

  /**
   * @generated from field: float entropy_coef = 6;
   */
  entropyCoef: number;

  /**
   * @generated from field: uint32 rollout_steps = 7;
   */
  rolloutSteps: number;

  /**
   * @generated from field: uint32 minibatch_size = 8;
   */
  minibatchSize: number;

  /**
   * @generated from field: float gae_lambda = 9;
   */
  gaeLambda: number;
};

/**
 * Describes the message ml_training.PpoParams.
 * Use `create(PpoParamsSchema)` to create a new message.
 */
export declare const PpoParamsSchema: GenMessage<PpoParams>;

/**
 * Liquid Network parameters
 *
 * @generated from message ml_training.LiquidParams
 */
export declare type LiquidParams = Message<"ml_training.LiquidParams"> & {
  /**
   * @generated from field: uint32 epochs = 1;
   */
  epochs: number;

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

  /**
   * @generated from field: uint32 batch_size = 3;
   */
  batchSize: number;

  /**
   * @generated from field: uint32 num_neurons = 4;
   */
  numNeurons: number;

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

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

  /**
   * @generated from field: bool use_adaptive_tau = 7;
   */
  useAdaptiveTau: boolean;
};

/**
 * Describes the message ml_training.LiquidParams.
 * Use `create(LiquidParamsSchema)` to create a new message.
 */
export declare const LiquidParamsSchema: GenMessage<LiquidParams>;

/**
 * Temporal Fusion Transformer parameters
 *
 * @generated from message ml_training.TftParams
 */
export declare type TftParams = Message<"ml_training.TftParams"> & {
  /**
   * @generated from field: uint32 epochs = 1;
   */
  epochs: number;

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

  /**
   * @generated from field: uint32 batch_size = 3;
   */
  batchSize: number;

  /**
   * @generated from field: uint32 hidden_dim = 4;
   */
  hiddenDim: number;

  /**
   * @generated from field: uint32 num_heads = 5;
   */
  numHeads: number;

  /**
   * @generated from field: uint32 num_layers = 6;
   */
  numLayers: number;

  /**
   * @generated from field: uint32 lookback_window = 7;
   */
  lookbackWindow: number;

  /**
   * @generated from field: uint32 forecast_horizon = 8;
   */
  forecastHorizon: number;

  /**
   * @generated from field: float dropout_rate = 9;
   */
  dropoutRate: number;
};

/**
 * Describes the message ml_training.TftParams.
 * Use `create(TftParamsSchema)` to create a new message.
 */
export declare const TftParamsSchema: GenMessage<TftParams>;

/**
 * @generated from message ml_training.ModelDefinition
 */
export declare type ModelDefinition = Message<"ml_training.ModelDefinition"> & {
  /**
   * @generated from field: string model_type = 1;
   */
  modelType: string;

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

  /**
   * @generated from field: ml_training.Hyperparameters default_hyperparameters = 3;
   */
  defaultHyperparameters?: Hyperparameters;

  /**
   * @generated from field: repeated string required_features = 4;
   */
  requiredFeatures: string[];

  /**
   * @generated from field: uint32 estimated_training_time_minutes = 5;
   */
  estimatedTrainingTimeMinutes: number;

  /**
   * @generated from field: bool requires_gpu = 6;
   */
  requiresGpu: boolean;
};

/**
 * Describes the message ml_training.ModelDefinition.
 * Use `create(ModelDefinitionSchema)` to create a new message.
 */
export declare const ModelDefinitionSchema: GenMessage<ModelDefinition>;

/**
 * @generated from message ml_training.TrainingJobSummary
 */
export declare type TrainingJobSummary = Message<"ml_training.TrainingJobSummary"> & {
  /**
   * @generated from field: string job_id = 1;
   */
  jobId: string;

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

  /**
   * @generated from field: ml_training.TrainingStatus status = 3;
   */
  status: TrainingStatus;

  /**
   * Unix timestamp in seconds
   *
   * @generated from field: int64 created_at = 4;
   */
  createdAt: bigint;

  /**
   * Unix timestamp in seconds
   *
   * @generated from field: int64 started_at = 5;
   */
  startedAt: bigint;

  /**
   * Unix timestamp in seconds
   *
   * @generated from field: int64 completed_at = 6;
   */
  completedAt: bigint;

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

  /**
   * @generated from field: float final_loss = 8;
   */
  finalLoss: number;

  /**
   * @generated from field: float best_validation_score = 9;
   */
  bestValidationScore: number;

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

/**
 * Describes the message ml_training.TrainingJobSummary.
 * Use `create(TrainingJobSummarySchema)` to create a new message.
 */
export declare const TrainingJobSummarySchema: GenMessage<TrainingJobSummary>;

/**
 * @generated from message ml_training.TrainingJobDetails
 */
export declare type TrainingJobDetails = Message<"ml_training.TrainingJobDetails"> & {
  /**
   * @generated from field: string job_id = 1;
   */
  jobId: string;

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

  /**
   * @generated from field: ml_training.TrainingStatus status = 3;
   */
  status: TrainingStatus;

  /**
   * Unix timestamp in seconds
   *
   * @generated from field: int64 created_at = 4;
   */
  createdAt: bigint;

  /**
   * Unix timestamp in seconds
   *
   * @generated from field: int64 started_at = 5;
   */
  startedAt: bigint;

  /**
   * Unix timestamp in seconds
   *
   * @generated from field: int64 completed_at = 6;
   */
  completedAt: bigint;

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

  /**
   * @generated from field: ml_training.Hyperparameters hyperparameters = 8;
   */
  hyperparameters?: Hyperparameters;

  /**
   * @generated from field: ml_training.DataSource data_source = 9;
   */
  dataSource?: DataSource;

  /**
   * @generated from field: repeated ml_training.TrainingStatusUpdate status_history = 10;
   */
  statusHistory: TrainingStatusUpdate[];

  /**
   * @generated from field: ml_training.FinancialMetrics final_financial_metrics = 11;
   */
  finalFinancialMetrics?: FinancialMetrics;

  /**
   * @generated from field: string model_artifact_path = 12;
   */
  modelArtifactPath: string;

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

  /**
   * @generated from field: string error_message = 14;
   */
  errorMessage: string;
};

/**
 * Describes the message ml_training.TrainingJobDetails.
 * Use `create(TrainingJobDetailsSchema)` to create a new message.
 */
export declare const TrainingJobDetailsSchema: GenMessage<TrainingJobDetails>;

/**
 * @generated from message ml_training.FinancialMetrics
 */
export declare type FinancialMetrics = Message<"ml_training.FinancialMetrics"> & {
  /**
   * @generated from field: float simulated_return = 1;
   */
  simulatedReturn: number;

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

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

  /**
   * @generated from field: float hit_rate = 4;
   */
  hitRate: number;

  /**
   * @generated from field: float avg_prediction_error_bps = 5;
   */
  avgPredictionErrorBps: number;

  /**
   * @generated from field: float risk_adjusted_return = 6;
   */
  riskAdjustedReturn: number;

  /**
   * @generated from field: float var_5pct = 7;
   */
  var5pct: number;

  /**
   * @generated from field: float expected_shortfall = 8;
   */
  expectedShortfall: number;
};

/**
 * Describes the message ml_training.FinancialMetrics.
 * Use `create(FinancialMetricsSchema)` to create a new message.
 */
export declare const FinancialMetricsSchema: GenMessage<FinancialMetrics>;

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

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

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

  /**
   * @generated from field: float gpu_memory_usage_gb = 4;
   */
  gpuMemoryUsageGb: number;

  /**
   * @generated from field: uint32 active_workers = 5;
   */
  activeWorkers: number;
};

/**
 * Describes the message ml_training.ResourceUsage.
 * Use `create(ResourceUsageSchema)` to create a new message.
 */
export declare const ResourceUsageSchema: GenMessage<ResourceUsage>;

/**
 * Request to start batch tuning for multiple models
 *
 * @generated from message ml_training.BatchStartTuningJobsRequest
 */
export declare type BatchStartTuningJobsRequest = Message<"ml_training.BatchStartTuningJobsRequest"> & {
  /**
   * List of models to tune (DQN, PPO, MAMBA_2, TFT, etc.)
   *
   * @generated from field: repeated string model_types = 1;
   */
  modelTypes: string[];

  /**
   * Number of trials for each model
   *
   * @generated from field: uint32 trials_per_model = 2;
   */
  trialsPerModel: number;

  /**
   * Path to tuning configuration file
   *
   * @generated from field: string config_path = 3;
   */
  configPath: string;

  /**
   * Training data source for all models
   *
   * @generated from field: ml_training.DataSource data_source = 4;
   */
  dataSource?: DataSource;

  /**
   * Whether to use GPU acceleration
   *
   * @generated from field: bool use_gpu = 5;
   */
  useGpu: boolean;

  /**
   * Automatically export best params to YAML (default: true)
   *
   * @generated from field: bool auto_export_yaml = 6;
   */
  autoExportYaml: boolean;

  /**
   * Custom YAML export path (default: ml/config/best_hyperparameters.yaml)
   *
   * @generated from field: string yaml_export_path = 7;
   */
  yamlExportPath: string;

  /**
   * Optional batch job description
   *
   * @generated from field: string description = 8;
   */
  description: string;

  /**
   * Optional categorization tags
   *
   * @generated from field: map<string, string> tags = 9;
   */
  tags: { [key: string]: string };
};

/**
 * Describes the message ml_training.BatchStartTuningJobsRequest.
 * Use `create(BatchStartTuningJobsRequestSchema)` to create a new message.
 */
export declare const BatchStartTuningJobsRequestSchema: GenMessage<BatchStartTuningJobsRequest>;

/**
 * @generated from message ml_training.BatchStartTuningJobsResponse
 */
export declare type BatchStartTuningJobsResponse = Message<"ml_training.BatchStartTuningJobsResponse"> & {
  /**
   * Unique batch job identifier
   *
   * @generated from field: string batch_id = 1;
   */
  batchId: string;

  /**
   * Model execution order (after dependency resolution)
   *
   * @generated from field: repeated string execution_order = 2;
   */
  executionOrder: string[];

  /**
   * Human-readable status message
   *
   * @generated from field: string message = 3;
   */
  message: string;

  /**
   * Initial batch status
   *
   * @generated from field: ml_training.BatchTuningStatus status = 4;
   */
  status: BatchTuningStatus;
};

/**
 * Describes the message ml_training.BatchStartTuningJobsResponse.
 * Use `create(BatchStartTuningJobsResponseSchema)` to create a new message.
 */
export declare const BatchStartTuningJobsResponseSchema: GenMessage<BatchStartTuningJobsResponse>;

/**
 * Request to get batch tuning job status
 *
 * @generated from message ml_training.GetBatchTuningStatusRequest
 */
export declare type GetBatchTuningStatusRequest = Message<"ml_training.GetBatchTuningStatusRequest"> & {
  /**
   * Batch job identifier
   *
   * @generated from field: string batch_id = 1;
   */
  batchId: string;
};

/**
 * Describes the message ml_training.GetBatchTuningStatusRequest.
 * Use `create(GetBatchTuningStatusRequestSchema)` to create a new message.
 */
export declare const GetBatchTuningStatusRequestSchema: GenMessage<GetBatchTuningStatusRequest>;

/**
 * @generated from message ml_training.GetBatchTuningStatusResponse
 */
export declare type GetBatchTuningStatusResponse = Message<"ml_training.GetBatchTuningStatusResponse"> & {
  /**
   * Batch job identifier
   *
   * @generated from field: string batch_id = 1;
   */
  batchId: string;

  /**
   * Current batch status
   *
   * @generated from field: ml_training.BatchTuningStatus status = 2;
   */
  status: BatchTuningStatus;

  /**
   * Index of currently executing model (0-based)
   *
   * @generated from field: uint32 current_model_index = 3;
   */
  currentModelIndex: number;

  /**
   * Total number of models in batch
   *
   * @generated from field: uint32 total_models = 4;
   */
  totalModels: number;

  /**
   * Results for completed models
   *
   * @generated from field: repeated ml_training.ModelTuningResult results = 5;
   */
  results: ModelTuningResult[];

  /**
   * Currently tuning model type
   *
   * @generated from field: string current_model = 6;
   */
  currentModel: string;

  /**
   * Batch start time (Unix timestamp)
   *
   * @generated from field: int64 started_at = 7;
   */
  startedAt: bigint;

  /**
   * Last update time (Unix timestamp)
   *
   * @generated from field: int64 updated_at = 8;
   */
  updatedAt: bigint;

  /**
   * Estimated completion time (Unix timestamp)
   *
   * @generated from field: int64 estimated_completion_time = 9;
   */
  estimatedCompletionTime: bigint;

  /**
   * Path where YAML will be exported
   *
   * @generated from field: string yaml_export_path = 10;
   */
  yamlExportPath: string;
};

/**
 * Describes the message ml_training.GetBatchTuningStatusResponse.
 * Use `create(GetBatchTuningStatusResponseSchema)` to create a new message.
 */
export declare const GetBatchTuningStatusResponseSchema: GenMessage<GetBatchTuningStatusResponse>;

/**
 * Individual model tuning result within batch
 *
 * @generated from message ml_training.ModelTuningResult
 */
export declare type ModelTuningResult = Message<"ml_training.ModelTuningResult"> & {
  /**
   * Model type (DQN, PPO, etc.)
   *
   * @generated from field: string model_type = 1;
   */
  modelType: string;

  /**
   * Individual tuning job ID
   *
   * @generated from field: string job_id = 2;
   */
  jobId: string;

  /**
   * Model tuning status
   *
   * @generated from field: ml_training.TuningJobStatus status = 3;
   */
  status: TuningJobStatus;

  /**
   * Best hyperparameters found
   *
   * @generated from field: map<string, float> best_params = 4;
   */
  bestParams: { [key: string]: number };

  /**
   * Best metrics achieved
   *
   * @generated from field: map<string, float> best_metrics = 5;
   */
  bestMetrics: { [key: string]: number };

  /**
   * Number of trials completed
   *
   * @generated from field: uint32 trials_completed = 6;
   */
  trialsCompleted: number;

  /**
   * Model tuning start time
   *
   * @generated from field: int64 started_at = 7;
   */
  startedAt: bigint;

  /**
   * Model tuning completion time
   *
   * @generated from field: int64 completed_at = 8;
   */
  completedAt: bigint;

  /**
   * Error message if failed
   *
   * @generated from field: string error_message = 9;
   */
  errorMessage: string;
};

/**
 * Describes the message ml_training.ModelTuningResult.
 * Use `create(ModelTuningResultSchema)` to create a new message.
 */
export declare const ModelTuningResultSchema: GenMessage<ModelTuningResult>;

/**
 * Request to stop batch tuning job
 *
 * @generated from message ml_training.StopBatchTuningJobRequest
 */
export declare type StopBatchTuningJobRequest = Message<"ml_training.StopBatchTuningJobRequest"> & {
  /**
   * Batch job identifier
   *
   * @generated from field: string batch_id = 1;
   */
  batchId: string;

  /**
   * Optional reason for stopping
   *
   * @generated from field: string reason = 2;
   */
  reason: string;
};

/**
 * Describes the message ml_training.StopBatchTuningJobRequest.
 * Use `create(StopBatchTuningJobRequestSchema)` to create a new message.
 */
export declare const StopBatchTuningJobRequestSchema: GenMessage<StopBatchTuningJobRequest>;

/**
 * @generated from message ml_training.StopBatchTuningJobResponse
 */
export declare type StopBatchTuningJobResponse = Message<"ml_training.StopBatchTuningJobResponse"> & {
  /**
   * Whether stop was successful
   *
   * @generated from field: bool success = 1;
   */
  success: boolean;

  /**
   * Human-readable status message
   *
   * @generated from field: string message = 2;
   */
  message: string;

  /**
   * Final batch status
   *
   * @generated from field: ml_training.BatchTuningStatus final_status = 3;
   */
  finalStatus: BatchTuningStatus;

  /**
   * Results for completed models
   *
   * @generated from field: repeated ml_training.ModelTuningResult completed_results = 4;
   */
  completedResults: ModelTuningResult[];
};

/**
 * Describes the message ml_training.StopBatchTuningJobResponse.
 * Use `create(StopBatchTuningJobResponseSchema)` to create a new message.
 */
export declare const StopBatchTuningJobResponseSchema: GenMessage<StopBatchTuningJobResponse>;

/**
 * @generated from message ml_training.JobCompletionReport
 */
export declare type JobCompletionReport = Message<"ml_training.JobCompletionReport"> & {
  /**
   * @generated from field: string job_id = 1;
   */
  jobId: string;

  /**
   * @generated from field: string s3_path = 2;
   */
  s3Path: string;

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

  /**
   * @generated from field: string error_message = 4;
   */
  errorMessage: string;

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

/**
 * Describes the message ml_training.JobCompletionReport.
 * Use `create(JobCompletionReportSchema)` to create a new message.
 */
export declare const JobCompletionReportSchema: GenMessage<JobCompletionReport>;

/**
 * @generated from message ml_training.JobCompletionAck
 */
export declare type JobCompletionAck = Message<"ml_training.JobCompletionAck"> & {
  /**
   * @generated from field: bool accepted = 1;
   */
  accepted: boolean;

  /**
   * @generated from field: string promotion_status = 2;
   */
  promotionStatus: string;
};

/**
 * Describes the message ml_training.JobCompletionAck.
 * Use `create(JobCompletionAckSchema)` to create a new message.
 */
export declare const JobCompletionAckSchema: GenMessage<JobCompletionAck>;

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

/**
 * Describes the message ml_training.ListPendingPromotionsRequest.
 * Use `create(ListPendingPromotionsRequestSchema)` to create a new message.
 */
export declare const ListPendingPromotionsRequestSchema: GenMessage<ListPendingPromotionsRequest>;

/**
 * @generated from message ml_training.ListPendingPromotionsResponse
 */
export declare type ListPendingPromotionsResponse = Message<"ml_training.ListPendingPromotionsResponse"> & {
  /**
   * @generated from field: repeated ml_training.PendingPromotion promotions = 1;
   */
  promotions: PendingPromotion[];
};

/**
 * Describes the message ml_training.ListPendingPromotionsResponse.
 * Use `create(ListPendingPromotionsResponseSchema)` to create a new message.
 */
export declare const ListPendingPromotionsResponseSchema: GenMessage<ListPendingPromotionsResponse>;

/**
 * @generated from message ml_training.PendingPromotion
 */
export declare type PendingPromotion = Message<"ml_training.PendingPromotion"> & {
  /**
   * @generated from field: string model_id = 1;
   */
  modelId: string;

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

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

  /**
   * @generated from field: string s3_path = 4;
   */
  s3Path: string;

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

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

  /**
   * @generated from field: int64 trained_at = 7;
   */
  trainedAt: bigint;

  /**
   * @generated from field: string job_id = 8;
   */
  jobId: string;
};

/**
 * Describes the message ml_training.PendingPromotion.
 * Use `create(PendingPromotionSchema)` to create a new message.
 */
export declare const PendingPromotionSchema: GenMessage<PendingPromotion>;

/**
 * @generated from message ml_training.ApprovePromotionRequest
 */
export declare type ApprovePromotionRequest = Message<"ml_training.ApprovePromotionRequest"> & {
  /**
   * @generated from field: string model_id = 1;
   */
  modelId: string;
};

/**
 * Describes the message ml_training.ApprovePromotionRequest.
 * Use `create(ApprovePromotionRequestSchema)` to create a new message.
 */
export declare const ApprovePromotionRequestSchema: GenMessage<ApprovePromotionRequest>;

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

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

/**
 * Describes the message ml_training.ApprovePromotionResponse.
 * Use `create(ApprovePromotionResponseSchema)` to create a new message.
 */
export declare const ApprovePromotionResponseSchema: GenMessage<ApprovePromotionResponse>;

/**
 * @generated from message ml_training.RejectPromotionRequest
 */
export declare type RejectPromotionRequest = Message<"ml_training.RejectPromotionRequest"> & {
  /**
   * @generated from field: string model_id = 1;
   */
  modelId: string;

  /**
   * @generated from field: string reason = 2;
   */
  reason: string;
};

/**
 * Describes the message ml_training.RejectPromotionRequest.
 * Use `create(RejectPromotionRequestSchema)` to create a new message.
 */
export declare const RejectPromotionRequestSchema: GenMessage<RejectPromotionRequest>;

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

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

/**
 * Describes the message ml_training.RejectPromotionResponse.
 * Use `create(RejectPromotionResponseSchema)` to create a new message.
 */
export declare const RejectPromotionResponseSchema: GenMessage<RejectPromotionResponse>;

/**
 * @generated from message ml_training.ApproveModelRequest
 */
export declare type ApproveModelRequest = Message<"ml_training.ApproveModelRequest"> & {
  /**
   * @generated from field: string model_id = 1;
   */
  modelId: string;

  /**
   * e.g. "production", "staging", "canary"
   *
   * @generated from field: string promoted_to = 2;
   */
  promotedTo: string;
};

/**
 * Describes the message ml_training.ApproveModelRequest.
 * Use `create(ApproveModelRequestSchema)` to create a new message.
 */
export declare const ApproveModelRequestSchema: GenMessage<ApproveModelRequest>;

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

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

/**
 * Describes the message ml_training.ApproveModelResponse.
 * Use `create(ApproveModelResponseSchema)` to create a new message.
 */
export declare const ApproveModelResponseSchema: GenMessage<ApproveModelResponse>;

/**
 * @generated from message ml_training.RejectModelRequest
 */
export declare type RejectModelRequest = Message<"ml_training.RejectModelRequest"> & {
  /**
   * @generated from field: string model_id = 1;
   */
  modelId: string;

  /**
   * @generated from field: string reason = 2;
   */
  reason: string;
};

/**
 * Describes the message ml_training.RejectModelRequest.
 * Use `create(RejectModelRequestSchema)` to create a new message.
 */
export declare const RejectModelRequestSchema: GenMessage<RejectModelRequest>;

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

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

/**
 * Describes the message ml_training.RejectModelResponse.
 * Use `create(RejectModelResponseSchema)` to create a new message.
 */
export declare const RejectModelResponseSchema: GenMessage<RejectModelResponse>;

/**
 * Training mode selection
 *
 * @generated from enum ml_training.TrainingMode
 */
export enum TrainingMode {
  /**
   * Full training from scratch (default, backward-compatible)
   *
   * @generated from enum value: TRAINING_MODE_FULL = 0;
   */
  FULL = 0,

  /**
   * Fine-tune from existing checkpoint
   *
   * @generated from enum value: TRAINING_MODE_FINE_TUNE = 1;
   */
  FINE_TUNE = 1,
}

/**
 * Describes the enum ml_training.TrainingMode.
 */
export declare const TrainingModeSchema: GenEnum<TrainingMode>;

/**
 * Type of progress update
 *
 * @generated from enum ml_training.UpdateType
 */
export enum UpdateType {
  /**
   * Unknown/unspecified
   *
   * @generated from enum value: UPDATE_UNKNOWN = 0;
   */
  UPDATE_UNKNOWN = 0,

  /**
   * Trial completed
   *
   * @generated from enum value: UPDATE_TRIAL_COMPLETE = 1;
   */
  UPDATE_TRIAL_COMPLETE = 1,

  /**
   * Keepalive heartbeat (no trial change)
   *
   * @generated from enum value: UPDATE_HEARTBEAT = 2;
   */
  UPDATE_HEARTBEAT = 2,

  /**
   * Job completed/stopped/failed
   *
   * @generated from enum value: UPDATE_JOB_COMPLETE = 3;
   */
  UPDATE_JOB_COMPLETE = 3,
}

/**
 * Describes the enum ml_training.UpdateType.
 */
export declare const UpdateTypeSchema: GenEnum<UpdateType>;

/**
 * Current status of a training job
 *
 * @generated from enum ml_training.TrainingStatus
 */
export enum TrainingStatus {
  /**
   * Default/unknown status
   *
   * @generated from enum value: UNKNOWN = 0;
   */
  UNKNOWN = 0,

  /**
   * Job queued, waiting to start
   *
   * @generated from enum value: PENDING = 1;
   */
  PENDING = 1,

  /**
   * Job currently executing
   *
   * @generated from enum value: RUNNING = 2;
   */
  RUNNING = 2,

  /**
   * Job finished successfully
   *
   * @generated from enum value: COMPLETED = 3;
   */
  COMPLETED = 3,

  /**
   * Job failed with error
   *
   * @generated from enum value: FAILED = 4;
   */
  FAILED = 4,

  /**
   * Job manually stopped
   *
   * @generated from enum value: STOPPED = 5;
   */
  STOPPED = 5,

  /**
   * Job temporarily paused
   *
   * @generated from enum value: PAUSED = 6;
   */
  PAUSED = 6,
}

/**
 * Describes the enum ml_training.TrainingStatus.
 */
export declare const TrainingStatusSchema: GenEnum<TrainingStatus>;

/**
 * Status of a hyperparameter tuning job
 *
 * @generated from enum ml_training.TuningJobStatus
 */
export enum TuningJobStatus {
  /**
   * Default/unknown status
   *
   * @generated from enum value: TUNING_UNKNOWN = 0;
   */
  TUNING_UNKNOWN = 0,

  /**
   * Job queued, waiting to start
   *
   * @generated from enum value: TUNING_PENDING = 1;
   */
  TUNING_PENDING = 1,

  /**
   * Job currently executing trials
   *
   * @generated from enum value: TUNING_RUNNING = 2;
   */
  TUNING_RUNNING = 2,

  /**
   * Job finished all trials successfully
   *
   * @generated from enum value: TUNING_COMPLETED = 3;
   */
  TUNING_COMPLETED = 3,

  /**
   * Job failed with error
   *
   * @generated from enum value: TUNING_FAILED = 4;
   */
  TUNING_FAILED = 4,

  /**
   * Job manually stopped before completion
   *
   * @generated from enum value: TUNING_STOPPED = 5;
   */
  TUNING_STOPPED = 5,
}

/**
 * Describes the enum ml_training.TuningJobStatus.
 */
export declare const TuningJobStatusSchema: GenEnum<TuningJobStatus>;

/**
 * Outcome state of an individual trial
 *
 * @generated from enum ml_training.TrialState
 */
export enum TrialState {
  /**
   * Default/unknown state
   *
   * @generated from enum value: TRIAL_UNKNOWN = 0;
   */
  TRIAL_UNKNOWN = 0,

  /**
   * Trial currently executing
   *
   * @generated from enum value: TRIAL_RUNNING = 1;
   */
  TRIAL_RUNNING = 1,

  /**
   * Trial completed successfully
   *
   * @generated from enum value: TRIAL_COMPLETE = 2;
   */
  TRIAL_COMPLETE = 2,

  /**
   * Trial pruned by Optuna (early stopping)
   *
   * @generated from enum value: TRIAL_PRUNED = 3;
   */
  TRIAL_PRUNED = 3,

  /**
   * Trial failed with error
   *
   * @generated from enum value: TRIAL_FAILED = 4;
   */
  TRIAL_FAILED = 4,
}

/**
 * Describes the enum ml_training.TrialState.
 */
export declare const TrialStateSchema: GenEnum<TrialState>;

/**
 * Batch tuning job status
 *
 * @generated from enum ml_training.BatchTuningStatus
 */
export enum BatchTuningStatus {
  /**
   * Default/unknown status
   *
   * @generated from enum value: BATCH_UNKNOWN = 0;
   */
  BATCH_UNKNOWN = 0,

  /**
   * Batch queued, waiting to start
   *
   * @generated from enum value: BATCH_PENDING = 1;
   */
  BATCH_PENDING = 1,

  /**
   * Batch currently executing models
   *
   * @generated from enum value: BATCH_RUNNING = 2;
   */
  BATCH_RUNNING = 2,

  /**
   * All models completed successfully
   *
   * @generated from enum value: BATCH_COMPLETED = 3;
   */
  BATCH_COMPLETED = 3,

  /**
   * Some models succeeded, some failed
   *
   * @generated from enum value: BATCH_PARTIALLY_COMPLETED = 4;
   */
  BATCH_PARTIALLY_COMPLETED = 4,

  /**
   * Batch failed (all models failed or critical error)
   *
   * @generated from enum value: BATCH_FAILED = 5;
   */
  BATCH_FAILED = 5,

  /**
   * Batch manually stopped
   *
   * @generated from enum value: BATCH_STOPPED = 6;
   */
  BATCH_STOPPED = 6,
}

/**
 * Describes the enum ml_training.BatchTuningStatus.
 */
export declare const BatchTuningStatusSchema: GenEnum<BatchTuningStatus>;

/**
 * ML Training Service provides comprehensive machine learning model training capabilities for HFT systems.
 * This service manages training jobs for MAMBA-2, TLOB transformers, DQN, PPO, Liquid Networks, and TFT models
 * with real-time progress monitoring, resource management, and performance tracking.
 *
 * @generated from service ml_training.MLTrainingService
 */
export declare const MLTrainingService: GenService<{
  /**
   * Training Job Management
   * Initiates a new training job and returns job ID immediately
   *
   * @generated from rpc ml_training.MLTrainingService.StartTraining
   */
  startTraining: {
    methodKind: "unary";
    input: typeof StartTrainingRequestSchema;
    output: typeof StartTrainingResponseSchema;
  },
  /**
   * Subscribe to real-time training progress and status updates
   *
   * @generated from rpc ml_training.MLTrainingService.SubscribeToTrainingStatus
   */
  subscribeToTrainingStatus: {
    methodKind: "server_streaming";
    input: typeof SubscribeToTrainingStatusRequestSchema;
    output: typeof TrainingStatusUpdateSchema;
  },
  /**
   * Stop a running training job (idempotent operation)
   *
   * @generated from rpc ml_training.MLTrainingService.StopTraining
   */
  stopTraining: {
    methodKind: "unary";
    input: typeof StopTrainingRequestSchema;
    output: typeof StopTrainingResponseSchema;
  },
  /**
   * Model and Job Discovery
   * List available ML models with their training parameters
   *
   * @generated from rpc ml_training.MLTrainingService.ListAvailableModels
   */
  listAvailableModels: {
    methodKind: "unary";
    input: typeof ListAvailableModelsRequestSchema;
    output: typeof ListAvailableModelsResponseSchema;
  },
  /**
   * Get paginated list of training job history
   *
   * @generated from rpc ml_training.MLTrainingService.ListTrainingJobs
   */
  listTrainingJobs: {
    methodKind: "unary";
    input: typeof ListTrainingJobsRequestSchema;
    output: typeof ListTrainingJobsResponseSchema;
  },
  /**
   * Get comprehensive details for a specific training job
   *
   * @generated from rpc ml_training.MLTrainingService.GetTrainingJobDetails
   */
  getTrainingJobDetails: {
    methodKind: "unary";
    input: typeof GetTrainingJobDetailsRequestSchema;
    output: typeof GetTrainingJobDetailsResponseSchema;
  },
  /**
   * Service Health and Status
   * Check service health and resource availability
   *
   * @generated from rpc ml_training.MLTrainingService.HealthCheck
   */
  healthCheck: {
    methodKind: "unary";
    input: typeof HealthCheckRequestSchema;
    output: typeof HealthCheckResponseSchema;
  },
  /**
   * Hyperparameter Tuning Management
   * Start a new hyperparameter tuning job using Optuna
   *
   * @generated from rpc ml_training.MLTrainingService.StartTuningJob
   */
  startTuningJob: {
    methodKind: "unary";
    input: typeof StartTuningJobRequestSchema;
    output: typeof StartTuningJobResponseSchema;
  },
  /**
   * Get current status and best parameters from a tuning job
   *
   * @generated from rpc ml_training.MLTrainingService.GetTuningJobStatus
   */
  getTuningJobStatus: {
    methodKind: "unary";
    input: typeof GetTuningJobStatusRequestSchema;
    output: typeof GetTuningJobStatusResponseSchema;
  },
  /**
   * Stop a running hyperparameter tuning job
   *
   * @generated from rpc ml_training.MLTrainingService.StopTuningJob
   */
  stopTuningJob: {
    methodKind: "unary";
    input: typeof StopTuningJobRequestSchema;
    output: typeof StopTuningJobResponseSchema;
  },
  /**
   * INTERNAL: Train a single model instance with specific hyperparameters (called by Optuna subprocess)
   *
   * @generated from rpc ml_training.MLTrainingService.TrainModel
   */
  trainModel: {
    methodKind: "unary";
    input: typeof TrainModelRequestSchema;
    output: typeof TrainModelResponseSchema;
  },
  /**
   * Stream real-time tuning progress updates (trial completion events)
   *
   * @generated from rpc ml_training.MLTrainingService.StreamTuningProgress
   */
  streamTuningProgress: {
    methodKind: "server_streaming";
    input: typeof StreamProgressRequestSchema;
    output: typeof ProgressUpdateSchema;
  },
  /**
   * Batch Tuning Management
   * Start batch tuning job for multiple models with automatic dependency resolution
   *
   * @generated from rpc ml_training.MLTrainingService.BatchStartTuningJobs
   */
  batchStartTuningJobs: {
    methodKind: "unary";
    input: typeof BatchStartTuningJobsRequestSchema;
    output: typeof BatchStartTuningJobsResponseSchema;
  },
  /**
   * Get batch tuning job status with per-model results
   *
   * @generated from rpc ml_training.MLTrainingService.GetBatchTuningStatus
   */
  getBatchTuningStatus: {
    methodKind: "unary";
    input: typeof GetBatchTuningStatusRequestSchema;
    output: typeof GetBatchTuningStatusResponseSchema;
  },
  /**
   * Stop a running batch tuning job
   *
   * @generated from rpc ml_training.MLTrainingService.StopBatchTuningJob
   */
  stopBatchTuningJob: {
    methodKind: "unary";
    input: typeof StopBatchTuningJobRequestSchema;
    output: typeof StopBatchTuningJobResponseSchema;
  },
  /**
   * Job Completion Callback (called by training-uploader sidecar)
   *
   * @generated from rpc ml_training.MLTrainingService.ReportJobCompletion
   */
  reportJobCompletion: {
    methodKind: "unary";
    input: typeof JobCompletionReportSchema;
    output: typeof JobCompletionAckSchema;
  },
  /**
   * Model Promotion Management
   *
   * @generated from rpc ml_training.MLTrainingService.ListPendingPromotions
   */
  listPendingPromotions: {
    methodKind: "unary";
    input: typeof ListPendingPromotionsRequestSchema;
    output: typeof ListPendingPromotionsResponseSchema;
  },
  /**
   * @generated from rpc ml_training.MLTrainingService.ApprovePromotion
   */
  approvePromotion: {
    methodKind: "unary";
    input: typeof ApprovePromotionRequestSchema;
    output: typeof ApprovePromotionResponseSchema;
  },
  /**
   * @generated from rpc ml_training.MLTrainingService.RejectPromotion
   */
  rejectPromotion: {
    methodKind: "unary";
    input: typeof RejectPromotionRequestSchema;
    output: typeof RejectPromotionResponseSchema;
  },
  /**
   * Model approval / rejection (dashboard-facing, delegates to promotion pipeline)
   *
   * @generated from rpc ml_training.MLTrainingService.ApproveModel
   */
  approveModel: {
    methodKind: "unary";
    input: typeof ApproveModelRequestSchema;
    output: typeof ApproveModelResponseSchema;
  },
  /**
   * @generated from rpc ml_training.MLTrainingService.RejectModel
   */
  rejectModel: {
    methodKind: "unary";
    input: typeof RejectModelRequestSchema;
    output: typeof RejectModelResponseSchema;
  },
}>;

