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

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

/**
 * Describes the file trading.proto.
 */
export declare const file_trading: GenFile;

/**
 * @generated from message trading.StreamPortfolioSummaryRequest
 */
export declare type StreamPortfolioSummaryRequest = Message<"trading.StreamPortfolioSummaryRequest"> & {
  /**
   * Account ID for portfolio summary
   *
   * @generated from field: string account_id = 1;
   */
  accountId: string;

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

/**
 * Describes the message trading.StreamPortfolioSummaryRequest.
 * Use `create(StreamPortfolioSummaryRequestSchema)` to create a new message.
 */
export declare const StreamPortfolioSummaryRequestSchema: GenMessage<StreamPortfolioSummaryRequest>;

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

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

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

/**
 * Describes the message trading.StreamOrderBookRequest.
 * Use `create(StreamOrderBookRequestSchema)` to create a new message.
 */
export declare const StreamOrderBookRequestSchema: GenMessage<StreamOrderBookRequest>;

/**
 * Request to submit a new trading order
 *
 * @generated from message trading.SubmitOrderRequest
 */
export declare type SubmitOrderRequest = Message<"trading.SubmitOrderRequest"> & {
  /**
   * Trading symbol (e.g., "AAPL", "BTC-USD")
   *
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * Buy or sell direction
   *
   * @generated from field: trading.OrderSide side = 2;
   */
  side: OrderSide;

  /**
   * Number of shares/units to trade
   *
   * @generated from field: double quantity = 3;
   */
  quantity: number;

  /**
   * Market, limit, stop, or stop-limit
   *
   * @generated from field: trading.OrderType order_type = 4;
   */
  orderType: OrderType;

  /**
   * Limit price (required for limit orders)
   *
   * @generated from field: optional double price = 5;
   */
  price?: number;

  /**
   * Stop price (required for stop orders)
   *
   * @generated from field: optional double stop_price = 6;
   */
  stopPrice?: number;

  /**
   * Trading account identifier
   *
   * @generated from field: string account_id = 7;
   */
  accountId: string;

  /**
   * Additional order metadata (strategy, tags, etc.)
   *
   * @generated from field: map<string, string> metadata = 8;
   */
  metadata: { [key: string]: string };
};

/**
 * Describes the message trading.SubmitOrderRequest.
 * Use `create(SubmitOrderRequestSchema)` to create a new message.
 */
export declare const SubmitOrderRequestSchema: GenMessage<SubmitOrderRequest>;

/**
 * Response after submitting an order
 *
 * @generated from message trading.SubmitOrderResponse
 */
export declare type SubmitOrderResponse = Message<"trading.SubmitOrderResponse"> & {
  /**
   * Unique order identifier assigned by system
   *
   * @generated from field: string order_id = 1;
   */
  orderId: string;

  /**
   * Current order status (pending, submitted, etc.)
   *
   * @generated from field: trading.OrderStatus status = 2;
   */
  status: OrderStatus;

  /**
   * Status message or error description
   *
   * @generated from field: string message = 3;
   */
  message: string;

  /**
   * Order submission timestamp (nanoseconds)
   *
   * @generated from field: int64 timestamp = 4;
   */
  timestamp: bigint;
};

/**
 * Describes the message trading.SubmitOrderResponse.
 * Use `create(SubmitOrderResponseSchema)` to create a new message.
 */
export declare const SubmitOrderResponseSchema: GenMessage<SubmitOrderResponse>;

/**
 * Request to cancel an existing order
 *
 * @generated from message trading.CancelOrderRequest
 */
export declare type CancelOrderRequest = Message<"trading.CancelOrderRequest"> & {
  /**
   * Order ID to cancel
   *
   * @generated from field: string order_id = 1;
   */
  orderId: string;

  /**
   * Account ID for verification
   *
   * @generated from field: string account_id = 2;
   */
  accountId: string;
};

/**
 * Describes the message trading.CancelOrderRequest.
 * Use `create(CancelOrderRequestSchema)` to create a new message.
 */
export declare const CancelOrderRequestSchema: GenMessage<CancelOrderRequest>;

/**
 * Response after attempting to cancel an order
 *
 * @generated from message trading.CancelOrderResponse
 */
export declare type CancelOrderResponse = Message<"trading.CancelOrderResponse"> & {
  /**
   * True if cancellation was successful
   *
   * @generated from field: bool success = 1;
   */
  success: boolean;

  /**
   * Success confirmation or error message
   *
   * @generated from field: string message = 2;
   */
  message: string;

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

/**
 * Describes the message trading.CancelOrderResponse.
 * Use `create(CancelOrderResponseSchema)` to create a new message.
 */
export declare const CancelOrderResponseSchema: GenMessage<CancelOrderResponse>;

/**
 * Request to get current status of an order
 *
 * @generated from message trading.GetOrderStatusRequest
 */
export declare type GetOrderStatusRequest = Message<"trading.GetOrderStatusRequest"> & {
  /**
   * Order ID to query
   *
   * @generated from field: string order_id = 1;
   */
  orderId: string;
};

/**
 * Describes the message trading.GetOrderStatusRequest.
 * Use `create(GetOrderStatusRequestSchema)` to create a new message.
 */
export declare const GetOrderStatusRequestSchema: GenMessage<GetOrderStatusRequest>;

/**
 * Response containing order status information
 *
 * @generated from message trading.GetOrderStatusResponse
 */
export declare type GetOrderStatusResponse = Message<"trading.GetOrderStatusResponse"> & {
  /**
   * Complete order details with current status
   *
   * @generated from field: trading.Order order = 1;
   */
  order?: Order;
};

/**
 * Describes the message trading.GetOrderStatusResponse.
 * Use `create(GetOrderStatusResponseSchema)` to create a new message.
 */
export declare const GetOrderStatusResponseSchema: GenMessage<GetOrderStatusResponse>;

/**
 * Request to stream real-time order events
 *
 * @generated from message trading.StreamOrdersRequest
 */
export declare type StreamOrdersRequest = Message<"trading.StreamOrdersRequest"> & {
  /**
   * Filter by account (all accounts if not specified)
   *
   * @generated from field: optional string account_id = 1;
   */
  accountId?: string;

  /**
   * Filter by symbol (all symbols if not specified)
   *
   * @generated from field: optional string symbol = 2;
   */
  symbol?: string;
};

/**
 * Describes the message trading.StreamOrdersRequest.
 * Use `create(StreamOrdersRequestSchema)` to create a new message.
 */
export declare const StreamOrdersRequestSchema: GenMessage<StreamOrdersRequest>;

/**
 * Request to get current positions
 *
 * @generated from message trading.GetPositionsRequest
 */
export declare type GetPositionsRequest = Message<"trading.GetPositionsRequest"> & {
  /**
   * Filter by account (all accounts if not specified)
   *
   * @generated from field: optional string account_id = 1;
   */
  accountId?: string;

  /**
   * Filter by symbol (all symbols if not specified)
   *
   * @generated from field: optional string symbol = 2;
   */
  symbol?: string;
};

/**
 * Describes the message trading.GetPositionsRequest.
 * Use `create(GetPositionsRequestSchema)` to create a new message.
 */
export declare const GetPositionsRequestSchema: GenMessage<GetPositionsRequest>;

/**
 * Response containing position information
 *
 * @generated from message trading.GetPositionsResponse
 */
export declare type GetPositionsResponse = Message<"trading.GetPositionsResponse"> & {
  /**
   * List of current positions
   *
   * @generated from field: repeated trading.Position positions = 1;
   */
  positions: Position[];
};

/**
 * Describes the message trading.GetPositionsResponse.
 * Use `create(GetPositionsResponseSchema)` to create a new message.
 */
export declare const GetPositionsResponseSchema: GenMessage<GetPositionsResponse>;

/**
 * Request to stream real-time position updates
 *
 * @generated from message trading.StreamPositionsRequest
 */
export declare type StreamPositionsRequest = Message<"trading.StreamPositionsRequest"> & {
  /**
   * Filter by account (all accounts if not specified)
   *
   * @generated from field: optional string account_id = 1;
   */
  accountId?: string;
};

/**
 * Describes the message trading.StreamPositionsRequest.
 * Use `create(StreamPositionsRequestSchema)` to create a new message.
 */
export declare const StreamPositionsRequestSchema: GenMessage<StreamPositionsRequest>;

/**
 * Request for portfolio summary
 *
 * @generated from message trading.GetPortfolioSummaryRequest
 */
export declare type GetPortfolioSummaryRequest = Message<"trading.GetPortfolioSummaryRequest"> & {
  /**
   * Account ID for portfolio summary
   *
   * @generated from field: string account_id = 1;
   */
  accountId: string;
};

/**
 * Describes the message trading.GetPortfolioSummaryRequest.
 * Use `create(GetPortfolioSummaryRequestSchema)` to create a new message.
 */
export declare const GetPortfolioSummaryRequestSchema: GenMessage<GetPortfolioSummaryRequest>;

/**
 * Response containing comprehensive portfolio information
 *
 * @generated from message trading.GetPortfolioSummaryResponse
 */
export declare type GetPortfolioSummaryResponse = Message<"trading.GetPortfolioSummaryResponse"> & {
  /**
   * Total portfolio value in USD
   *
   * @generated from field: double total_value = 1;
   */
  totalValue: number;

  /**
   * Unrealized profit/loss
   *
   * @generated from field: double unrealized_pnl = 2;
   */
  unrealizedPnl: number;

  /**
   * Realized profit/loss for the day
   *
   * @generated from field: double realized_pnl = 3;
   */
  realizedPnl: number;

  /**
   * Total P&L for the current trading day
   *
   * @generated from field: double day_pnl = 4;
   */
  dayPnl: number;

  /**
   * Available buying power
   *
   * @generated from field: double buying_power = 5;
   */
  buyingPower: number;

  /**
   * Amount of margin currently used
   *
   * @generated from field: double margin_used = 6;
   */
  marginUsed: number;

  /**
   * Detailed position information
   *
   * @generated from field: repeated trading.Position positions = 7;
   */
  positions: Position[];
};

/**
 * Describes the message trading.GetPortfolioSummaryResponse.
 * Use `create(GetPortfolioSummaryResponseSchema)` to create a new message.
 */
export declare const GetPortfolioSummaryResponseSchema: GenMessage<GetPortfolioSummaryResponse>;

/**
 * Request to stream real-time market data
 *
 * @generated from message trading.StreamMarketDataRequest
 */
export declare type StreamMarketDataRequest = Message<"trading.StreamMarketDataRequest"> & {
  /**
   * List of symbols to subscribe to
   *
   * @generated from field: repeated string symbols = 1;
   */
  symbols: string[];

  /**
   * Types of data to stream (trades, quotes, order book)
   *
   * @generated from field: repeated trading.MarketDataType data_types = 2;
   */
  dataTypes: MarketDataType[];
};

/**
 * Describes the message trading.StreamMarketDataRequest.
 * Use `create(StreamMarketDataRequestSchema)` to create a new message.
 */
export declare const StreamMarketDataRequestSchema: GenMessage<StreamMarketDataRequest>;

/**
 * Request for order book snapshot
 *
 * @generated from message trading.GetOrderBookRequest
 */
export declare type GetOrderBookRequest = Message<"trading.GetOrderBookRequest"> & {
  /**
   * Symbol to get order book for
   *
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * Number of price levels (default: full book)
   *
   * @generated from field: optional int32 depth = 2;
   */
  depth?: number;
};

/**
 * Describes the message trading.GetOrderBookRequest.
 * Use `create(GetOrderBookRequestSchema)` to create a new message.
 */
export declare const GetOrderBookRequestSchema: GenMessage<GetOrderBookRequest>;

/**
 * Response containing order book data
 *
 * @generated from message trading.GetOrderBookResponse
 */
export declare type GetOrderBookResponse = Message<"trading.GetOrderBookResponse"> & {
  /**
   * Current order book snapshot
   *
   * @generated from field: trading.OrderBook order_book = 1;
   */
  orderBook?: OrderBook;
};

/**
 * Describes the message trading.GetOrderBookResponse.
 * Use `create(GetOrderBookResponseSchema)` to create a new message.
 */
export declare const GetOrderBookResponseSchema: GenMessage<GetOrderBookResponse>;

/**
 * Request to stream real-time executions
 *
 * @generated from message trading.StreamExecutionsRequest
 */
export declare type StreamExecutionsRequest = Message<"trading.StreamExecutionsRequest"> & {
  /**
   * Filter by account (all accounts if not specified)
   *
   * @generated from field: optional string account_id = 1;
   */
  accountId?: string;

  /**
   * Filter by symbol (all symbols if not specified)
   *
   * @generated from field: optional string symbol = 2;
   */
  symbol?: string;
};

/**
 * Describes the message trading.StreamExecutionsRequest.
 * Use `create(StreamExecutionsRequestSchema)` to create a new message.
 */
export declare const StreamExecutionsRequestSchema: GenMessage<StreamExecutionsRequest>;

/**
 * Request for historical execution data
 *
 * @generated from message trading.GetExecutionHistoryRequest
 */
export declare type GetExecutionHistoryRequest = Message<"trading.GetExecutionHistoryRequest"> & {
  /**
   * Filter by account (all accounts if not specified)
   *
   * @generated from field: optional string account_id = 1;
   */
  accountId?: string;

  /**
   * Filter by symbol (all symbols if not specified)
   *
   * @generated from field: optional string symbol = 2;
   */
  symbol?: string;

  /**
   * Start time for query (nanoseconds)
   *
   * @generated from field: optional int64 start_time = 3;
   */
  startTime?: bigint;

  /**
   * End time for query (nanoseconds)
   *
   * @generated from field: optional int64 end_time = 4;
   */
  endTime?: bigint;

  /**
   * Maximum number of executions to return
   *
   * @generated from field: optional int32 limit = 5;
   */
  limit?: number;
};

/**
 * Describes the message trading.GetExecutionHistoryRequest.
 * Use `create(GetExecutionHistoryRequestSchema)` to create a new message.
 */
export declare const GetExecutionHistoryRequestSchema: GenMessage<GetExecutionHistoryRequest>;

/**
 * Response containing execution history
 *
 * @generated from message trading.GetExecutionHistoryResponse
 */
export declare type GetExecutionHistoryResponse = Message<"trading.GetExecutionHistoryResponse"> & {
  /**
   * List of historical executions
   *
   * @generated from field: repeated trading.Execution executions = 1;
   */
  executions: Execution[];
};

/**
 * Describes the message trading.GetExecutionHistoryResponse.
 * Use `create(GetExecutionHistoryResponseSchema)` to create a new message.
 */
export declare const GetExecutionHistoryResponseSchema: GenMessage<GetExecutionHistoryResponse>;

/**
 * Request to submit ML-generated order
 *
 * @generated from message trading.MLOrderRequest
 */
export declare type MLOrderRequest = Message<"trading.MLOrderRequest"> & {
  /**
   * Trading symbol (e.g., "ES.FUT")
   *
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * Trading account identifier
   *
   * @generated from field: string account_id = 2;
   */
  accountId: string;

  /**
   * Use ensemble voting or specific model
   *
   * @generated from field: bool use_ensemble = 3;
   */
  useEnsemble: boolean;

  /**
   * Specific model name if not using ensemble
   *
   * @generated from field: optional string model_name = 4;
   */
  modelName?: string;

  /**
   * Feature vector for ML prediction (26 features: OHLCV + technicals)
   *
   * @generated from field: repeated double features = 5;
   */
  features: number[];
};

/**
 * Describes the message trading.MLOrderRequest.
 * Use `create(MLOrderRequestSchema)` to create a new message.
 */
export declare const MLOrderRequestSchema: GenMessage<MLOrderRequest>;

/**
 * Response after submitting ML order
 *
 * @generated from message trading.MLOrderResponse
 */
export declare type MLOrderResponse = Message<"trading.MLOrderResponse"> & {
  /**
   * Order ID if executed
   *
   * @generated from field: string order_id = 1;
   */
  orderId: string;

  /**
   * Prediction ID from ensemble_predictions table
   *
   * @generated from field: string prediction_id = 2;
   */
  predictionId: string;

  /**
   * Action taken: BUY, SELL, HOLD
   *
   * @generated from field: string action = 3;
   */
  action: string;

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

  /**
   * Status message
   *
   * @generated from field: string message = 5;
   */
  message: string;

  /**
   * True if order was executed
   *
   * @generated from field: bool executed = 6;
   */
  executed: boolean;
};

/**
 * Describes the message trading.MLOrderResponse.
 * Use `create(MLOrderResponseSchema)` to create a new message.
 */
export declare const MLOrderResponseSchema: GenMessage<MLOrderResponse>;

/**
 * Request to get ML prediction history
 *
 * @generated from message trading.MLPredictionsRequest
 */
export declare type MLPredictionsRequest = Message<"trading.MLPredictionsRequest"> & {
  /**
   * Trading symbol to filter by
   *
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * Filter by specific model
   *
   * @generated from field: optional string model_name = 2;
   */
  modelName?: string;

  /**
   * Maximum predictions to return (default: 100)
   *
   * @generated from field: int32 limit = 3;
   */
  limit: number;

  /**
   * Start time filter (nanoseconds)
   *
   * @generated from field: optional int64 start_time = 4;
   */
  startTime?: bigint;

  /**
   * End time filter (nanoseconds)
   *
   * @generated from field: optional int64 end_time = 5;
   */
  endTime?: bigint;
};

/**
 * Describes the message trading.MLPredictionsRequest.
 * Use `create(MLPredictionsRequestSchema)` to create a new message.
 */
export declare const MLPredictionsRequestSchema: GenMessage<MLPredictionsRequest>;

/**
 * Response containing ML prediction history
 *
 * @generated from message trading.MLPredictionsResponse
 */
export declare type MLPredictionsResponse = Message<"trading.MLPredictionsResponse"> & {
  /**
   * List of predictions with outcomes
   *
   * @generated from field: repeated trading.MLPrediction predictions = 1;
   */
  predictions: MLPrediction[];
};

/**
 * Describes the message trading.MLPredictionsResponse.
 * Use `create(MLPredictionsResponseSchema)` to create a new message.
 */
export declare const MLPredictionsResponseSchema: GenMessage<MLPredictionsResponse>;

/**
 * Single ML prediction with outcome
 *
 * @generated from message trading.MLPrediction
 */
export declare type MLPrediction = Message<"trading.MLPrediction"> & {
  /**
   * Prediction ID (UUID)
   *
   * @generated from field: string id = 1;
   */
  id: string;

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

  /**
   * Predicted action: BUY, SELL, HOLD
   *
   * @generated from field: string ensemble_action = 3;
   */
  ensembleAction: string;

  /**
   * Signal strength (-1.0 to 1.0)
   *
   * @generated from field: double ensemble_signal = 4;
   */
  ensembleSignal: number;

  /**
   * Confidence level (0.0-1.0)
   *
   * @generated from field: double ensemble_confidence = 5;
   */
  ensembleConfidence: number;

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

  /**
   * Order ID if executed
   *
   * @generated from field: optional string order_id = 7;
   */
  orderId?: string;

  /**
   * Actual P&L if order filled
   *
   * @generated from field: optional double actual_pnl = 8;
   */
  actualPnl?: number;

  /**
   * Individual model predictions
   *
   * @generated from field: repeated trading.ModelPrediction model_predictions = 9;
   */
  modelPredictions: ModelPrediction[];
};

/**
 * Describes the message trading.MLPrediction.
 * Use `create(MLPredictionSchema)` to create a new message.
 */
export declare const MLPredictionSchema: GenMessage<MLPrediction>;

/**
 * Individual model prediction within ensemble
 *
 * @generated from message trading.ModelPrediction
 */
export declare type ModelPrediction = Message<"trading.ModelPrediction"> & {
  /**
   * Model name (DQN, MAMBA2, PPO, TFT)
   *
   * @generated from field: string model_name = 1;
   */
  modelName: string;

  /**
   * Model signal strength
   *
   * @generated from field: double signal = 2;
   */
  signal: number;

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

/**
 * Describes the message trading.ModelPrediction.
 * Use `create(ModelPredictionSchema)` to create a new message.
 */
export declare const ModelPredictionSchema: GenMessage<ModelPrediction>;

/**
 * Request to get ML model performance metrics
 *
 * @generated from message trading.MLPerformanceRequest
 */
export declare type MLPerformanceRequest = Message<"trading.MLPerformanceRequest"> & {
  /**
   * Filter by specific model (or all if not specified)
   *
   * @generated from field: optional string model_name = 1;
   */
  modelName?: string;

  /**
   * Start time for metrics (nanoseconds)
   *
   * @generated from field: optional int64 start_time = 2;
   */
  startTime?: bigint;

  /**
   * End time for metrics (nanoseconds)
   *
   * @generated from field: optional int64 end_time = 3;
   */
  endTime?: bigint;
};

/**
 * Describes the message trading.MLPerformanceRequest.
 * Use `create(MLPerformanceRequestSchema)` to create a new message.
 */
export declare const MLPerformanceRequestSchema: GenMessage<MLPerformanceRequest>;

/**
 * Response containing ML model performance
 *
 * @generated from message trading.MLPerformanceResponse
 */
export declare type MLPerformanceResponse = Message<"trading.MLPerformanceResponse"> & {
  /**
   * Performance metrics per model
   *
   * @generated from field: repeated trading.ModelPerformance models = 1;
   */
  models: ModelPerformance[];
};

/**
 * Describes the message trading.MLPerformanceResponse.
 * Use `create(MLPerformanceResponseSchema)` to create a new message.
 */
export declare const MLPerformanceResponseSchema: GenMessage<MLPerformanceResponse>;

/**
 * Performance metrics for a single model
 *
 * @generated from message trading.ModelPerformance
 */
export declare type ModelPerformance = Message<"trading.ModelPerformance"> & {
  /**
   * Model name
   *
   * @generated from field: string model_name = 1;
   */
  modelName: string;

  /**
   * Total predictions made
   *
   * @generated from field: int64 total_predictions = 2;
   */
  totalPredictions: bigint;

  /**
   * Correct predictions (profitable)
   *
   * @generated from field: int64 correct_predictions = 3;
   */
  correctPredictions: bigint;

  /**
   * Accuracy rate (0.0-1.0)
   *
   * @generated from field: double accuracy = 4;
   */
  accuracy: number;

  /**
   * Risk-adjusted return
   *
   * @generated from field: double sharpe_ratio = 5;
   */
  sharpeRatio: number;

  /**
   * Average P&L per prediction
   *
   * @generated from field: double avg_pnl = 6;
   */
  avgPnl: number;
};

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

/**
 * Request to get current regime state
 *
 * @generated from message trading.GetRegimeStateRequest
 */
export declare type GetRegimeStateRequest = Message<"trading.GetRegimeStateRequest"> & {
  /**
   * Trading symbol to query
   *
   * @generated from field: string symbol = 1;
   */
  symbol: string;
};

/**
 * Describes the message trading.GetRegimeStateRequest.
 * Use `create(GetRegimeStateRequestSchema)` to create a new message.
 */
export declare const GetRegimeStateRequestSchema: GenMessage<GetRegimeStateRequest>;

/**
 * Response containing current regime state
 *
 * @generated from message trading.GetRegimeStateResponse
 */
export declare type GetRegimeStateResponse = Message<"trading.GetRegimeStateResponse"> & {
  /**
   * Trading symbol
   *
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * Current regime: TRENDING, RANGING, VOLATILE, CRISIS
   *
   * @generated from field: string current_regime = 2;
   */
  currentRegime: string;

  /**
   * Regime confidence (0.0-1.0)
   *
   * @generated from field: double confidence = 3;
   */
  confidence: number;

  /**
   * CUSUM S+ statistic
   *
   * @generated from field: double cusum_s_plus = 4;
   */
  cusumSPlus: number;

  /**
   * CUSUM S- statistic
   *
   * @generated from field: double cusum_s_minus = 5;
   */
  cusumSMinus: number;

  /**
   * Average Directional Index
   *
   * @generated from field: double adx = 6;
   */
  adx: number;

  /**
   * Regime stability score (0.0-1.0)
   *
   * @generated from field: double stability = 7;
   */
  stability: number;

  /**
   * Transition entropy (0.0-1.0)
   *
   * @generated from field: double entropy = 8;
   */
  entropy: number;

  /**
   * Last update timestamp (nanoseconds)
   *
   * @generated from field: int64 updated_at = 9;
   */
  updatedAt: bigint;
};

/**
 * Describes the message trading.GetRegimeStateResponse.
 * Use `create(GetRegimeStateResponseSchema)` to create a new message.
 */
export declare const GetRegimeStateResponseSchema: GenMessage<GetRegimeStateResponse>;

/**
 * Request to get regime transition history
 *
 * @generated from message trading.GetRegimeTransitionsRequest
 */
export declare type GetRegimeTransitionsRequest = Message<"trading.GetRegimeTransitionsRequest"> & {
  /**
   * Trading symbol to query
   *
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * Maximum transitions to return (default: 100)
   *
   * @generated from field: int32 limit = 2;
   */
  limit: number;
};

/**
 * Describes the message trading.GetRegimeTransitionsRequest.
 * Use `create(GetRegimeTransitionsRequestSchema)` to create a new message.
 */
export declare const GetRegimeTransitionsRequestSchema: GenMessage<GetRegimeTransitionsRequest>;

/**
 * Response containing regime transition history
 *
 * @generated from message trading.GetRegimeTransitionsResponse
 */
export declare type GetRegimeTransitionsResponse = Message<"trading.GetRegimeTransitionsResponse"> & {
  /**
   * List of regime transitions
   *
   * @generated from field: repeated trading.RegimeTransition transitions = 1;
   */
  transitions: RegimeTransition[];
};

/**
 * Describes the message trading.GetRegimeTransitionsResponse.
 * Use `create(GetRegimeTransitionsResponseSchema)` to create a new message.
 */
export declare const GetRegimeTransitionsResponseSchema: GenMessage<GetRegimeTransitionsResponse>;

/**
 * Single regime transition record
 *
 * @generated from message trading.RegimeTransition
 */
export declare type RegimeTransition = Message<"trading.RegimeTransition"> & {
  /**
   * Previous regime
   *
   * @generated from field: string from_regime = 1;
   */
  fromRegime: string;

  /**
   * New regime
   *
   * @generated from field: string to_regime = 2;
   */
  toRegime: string;

  /**
   * Duration in previous regime (bars)
   *
   * @generated from field: int32 duration_bars = 3;
   */
  durationBars: number;

  /**
   * Transition probability from matrix
   *
   * @generated from field: double transition_probability = 4;
   */
  transitionProbability: number;

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

/**
 * Describes the message trading.RegimeTransition.
 * Use `create(RegimeTransitionSchema)` to create a new message.
 */
export declare const RegimeTransitionSchema: GenMessage<RegimeTransition>;

/**
 * Complete order information with all lifecycle details
 *
 * @generated from message trading.Order
 */
export declare type Order = Message<"trading.Order"> & {
  /**
   * Unique order identifier
   *
   * @generated from field: string order_id = 1;
   */
  orderId: string;

  /**
   * Trading symbol (e.g., "AAPL", "BTC-USD")
   *
   * @generated from field: string symbol = 2;
   */
  symbol: string;

  /**
   * Buy or sell direction
   *
   * @generated from field: trading.OrderSide side = 3;
   */
  side: OrderSide;

  /**
   * Total quantity ordered
   *
   * @generated from field: double quantity = 4;
   */
  quantity: number;

  /**
   * Quantity already filled
   *
   * @generated from field: double filled_quantity = 5;
   */
  filledQuantity: number;

  /**
   * Market, limit, stop, or stop-limit
   *
   * @generated from field: trading.OrderType order_type = 6;
   */
  orderType: OrderType;

  /**
   * Limit price (for limit orders)
   *
   * @generated from field: optional double price = 7;
   */
  price?: number;

  /**
   * Stop price (for stop orders)
   *
   * @generated from field: optional double stop_price = 8;
   */
  stopPrice?: number;

  /**
   * Current order status
   *
   * @generated from field: trading.OrderStatus status = 9;
   */
  status: OrderStatus;

  /**
   * Order creation timestamp (nanoseconds)
   *
   * @generated from field: int64 created_at = 10;
   */
  createdAt: bigint;

  /**
   * Last update timestamp (nanoseconds)
   *
   * @generated from field: optional int64 updated_at = 11;
   */
  updatedAt?: bigint;

  /**
   * Associated trading account
   *
   * @generated from field: string account_id = 12;
   */
  accountId: string;

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

/**
 * Describes the message trading.Order.
 * Use `create(OrderSchema)` to create a new message.
 */
export declare const OrderSchema: GenMessage<Order>;

/**
 * Current position information for a symbol
 *
 * @generated from message trading.Position
 */
export declare type Position = Message<"trading.Position"> & {
  /**
   * Trading symbol
   *
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * Current position size (positive for long, negative for short)
   *
   * @generated from field: double quantity = 2;
   */
  quantity: number;

  /**
   * Average cost basis per share
   *
   * @generated from field: double average_price = 3;
   */
  averagePrice: number;

  /**
   * Current market value of position
   *
   * @generated from field: double market_value = 4;
   */
  marketValue: number;

  /**
   * Unrealized profit/loss
   *
   * @generated from field: double unrealized_pnl = 5;
   */
  unrealizedPnl: number;

  /**
   * Realized profit/loss for the day
   *
   * @generated from field: double realized_pnl = 6;
   */
  realizedPnl: number;

  /**
   * Associated trading account
   *
   * @generated from field: string account_id = 7;
   */
  accountId: string;

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

/**
 * Describes the message trading.Position.
 * Use `create(PositionSchema)` to create a new message.
 */
export declare const PositionSchema: GenMessage<Position>;

/**
 * Trade execution details
 *
 * @generated from message trading.Execution
 */
export declare type Execution = Message<"trading.Execution"> & {
  /**
   * Unique execution identifier
   *
   * @generated from field: string execution_id = 1;
   */
  executionId: string;

  /**
   * Associated order ID
   *
   * @generated from field: string order_id = 2;
   */
  orderId: string;

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

  /**
   * Buy or sell direction
   *
   * @generated from field: trading.OrderSide side = 4;
   */
  side: OrderSide;

  /**
   * Quantity executed
   *
   * @generated from field: double quantity = 5;
   */
  quantity: number;

  /**
   * Execution price
   *
   * @generated from field: double price = 6;
   */
  price: number;

  /**
   * Execution timestamp (nanoseconds)
   *
   * @generated from field: int64 timestamp = 7;
   */
  timestamp: bigint;

  /**
   * Associated trading account
   *
   * @generated from field: string account_id = 8;
   */
  accountId: string;

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

/**
 * Describes the message trading.Execution.
 * Use `create(ExecutionSchema)` to create a new message.
 */
export declare const ExecutionSchema: GenMessage<Execution>;

/**
 * Order book snapshot for a symbol
 *
 * @generated from message trading.OrderBook
 */
export declare type OrderBook = Message<"trading.OrderBook"> & {
  /**
   * Trading symbol
   *
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * Bid levels (buyers) sorted by price descending
   *
   * @generated from field: repeated trading.OrderBookLevel bids = 2;
   */
  bids: OrderBookLevel[];

  /**
   * Ask levels (sellers) sorted by price ascending
   *
   * @generated from field: repeated trading.OrderBookLevel asks = 3;
   */
  asks: OrderBookLevel[];

  /**
   * Order book timestamp (nanoseconds)
   *
   * @generated from field: int64 timestamp = 4;
   */
  timestamp: bigint;
};

/**
 * Describes the message trading.OrderBook.
 * Use `create(OrderBookSchema)` to create a new message.
 */
export declare const OrderBookSchema: GenMessage<OrderBook>;

/**
 * Single price level in the order book
 *
 * @generated from message trading.OrderBookLevel
 */
export declare type OrderBookLevel = Message<"trading.OrderBookLevel"> & {
  /**
   * Price level
   *
   * @generated from field: double price = 1;
   */
  price: number;

  /**
   * Total quantity at this price level
   *
   * @generated from field: double quantity = 2;
   */
  quantity: number;

  /**
   * Number of orders at this price level
   *
   * @generated from field: int32 order_count = 3;
   */
  orderCount: number;
};

/**
 * Describes the message trading.OrderBookLevel.
 * Use `create(OrderBookLevelSchema)` to create a new message.
 */
export declare const OrderBookLevelSchema: GenMessage<OrderBookLevel>;

/**
 * Real-time order event notification
 *
 * @generated from message trading.OrderEvent
 */
export declare type OrderEvent = Message<"trading.OrderEvent"> & {
  /**
   * Order identifier
   *
   * @generated from field: string order_id = 1;
   */
  orderId: string;

  /**
   * Complete order details
   *
   * @generated from field: trading.Order order = 2;
   */
  order?: Order;

  /**
   * Type of event (created, updated, filled, etc.)
   *
   * @generated from field: trading.OrderEventType event_type = 3;
   */
  eventType: OrderEventType;

  /**
   * Event timestamp (nanoseconds)
   *
   * @generated from field: int64 timestamp = 4;
   */
  timestamp: bigint;

  /**
   * Event message or additional details
   *
   * @generated from field: string message = 5;
   */
  message: string;
};

/**
 * Describes the message trading.OrderEvent.
 * Use `create(OrderEventSchema)` to create a new message.
 */
export declare const OrderEventSchema: GenMessage<OrderEvent>;

/**
 * Real-time position change notification
 *
 * @generated from message trading.PositionEvent
 */
export declare type PositionEvent = Message<"trading.PositionEvent"> & {
  /**
   * Trading symbol
   *
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * Updated position details
   *
   * @generated from field: trading.Position position = 2;
   */
  position?: Position;

  /**
   * Type of event (opened, updated, closed)
   *
   * @generated from field: trading.PositionEventType event_type = 3;
   */
  eventType: PositionEventType;

  /**
   * Event timestamp (nanoseconds)
   *
   * @generated from field: int64 timestamp = 4;
   */
  timestamp: bigint;

  /**
   * Position quantity (quick access)
   *
   * @generated from field: double quantity = 5;
   */
  quantity: number;

  /**
   * Average entry price (quick access)
   *
   * @generated from field: double average_price = 6;
   */
  averagePrice: number;

  /**
   * Unrealized P&L (quick access)
   *
   * @generated from field: double unrealized_pnl = 7;
   */
  unrealizedPnl: number;
};

/**
 * Describes the message trading.PositionEvent.
 * Use `create(PositionEventSchema)` to create a new message.
 */
export declare const PositionEventSchema: GenMessage<PositionEvent>;

/**
 * Real-time execution notification
 *
 * @generated from message trading.ExecutionEvent
 */
export declare type ExecutionEvent = Message<"trading.ExecutionEvent"> & {
  /**
   * Execution identifier
   *
   * @generated from field: string execution_id = 1;
   */
  executionId: string;

  /**
   * Execution details
   *
   * @generated from field: trading.Execution execution = 2;
   */
  execution?: Execution;

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

  /**
   * Associated order ID (quick access)
   *
   * @generated from field: string order_id = 4;
   */
  orderId: string;

  /**
   * Trading symbol (quick access)
   *
   * @generated from field: string symbol = 5;
   */
  symbol: string;

  /**
   * Executed quantity (quick access)
   *
   * @generated from field: double quantity = 6;
   */
  quantity: number;

  /**
   * Execution price (quick access)
   *
   * @generated from field: double price = 7;
   */
  price: number;
};

/**
 * Describes the message trading.ExecutionEvent.
 * Use `create(ExecutionEventSchema)` to create a new message.
 */
export declare const ExecutionEventSchema: GenMessage<ExecutionEvent>;

/**
 * Real-time market data update
 *
 * @generated from message trading.MarketDataEvent
 */
export declare type MarketDataEvent = Message<"trading.MarketDataEvent"> & {
  /**
   * Trading symbol
   *
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * Type of market data
   *
   * @generated from field: trading.MarketDataType data_type = 2;
   */
  dataType: MarketDataType;

  /**
   * @generated from oneof trading.MarketDataEvent.data
   */
  data: {
    /**
     * Trade data (when data_type = TRADE)
     *
     * @generated from field: trading.Trade trade = 3;
     */
    value: Trade;
    case: "trade";
  } | {
    /**
     * Quote data (when data_type = QUOTE)
     *
     * @generated from field: trading.Quote quote = 4;
     */
    value: Quote;
    case: "quote";
  } | {
    /**
     * Order book data (when data_type = ORDER_BOOK)
     *
     * @generated from field: trading.OrderBook order_book = 5;
     */
    value: OrderBook;
    case: "orderBook";
  } | { case: undefined; value?: undefined };

  /**
   * Market data timestamp (nanoseconds)
   *
   * @generated from field: int64 timestamp = 6;
   */
  timestamp: bigint;
};

/**
 * Describes the message trading.MarketDataEvent.
 * Use `create(MarketDataEventSchema)` to create a new message.
 */
export declare const MarketDataEventSchema: GenMessage<MarketDataEvent>;

/**
 * Market trade information
 *
 * @generated from message trading.Trade
 */
export declare type Trade = Message<"trading.Trade"> & {
  /**
   * Trade price
   *
   * @generated from field: double price = 1;
   */
  price: number;

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

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

/**
 * Describes the message trading.Trade.
 * Use `create(TradeSchema)` to create a new message.
 */
export declare const TradeSchema: GenMessage<Trade>;

/**
 * Market quote (bid/ask) information
 *
 * @generated from message trading.Quote
 */
export declare type Quote = Message<"trading.Quote"> & {
  /**
   * Best bid price
   *
   * @generated from field: double bid_price = 1;
   */
  bidPrice: number;

  /**
   * Size at best bid
   *
   * @generated from field: double bid_size = 2;
   */
  bidSize: number;

  /**
   * Best ask price
   *
   * @generated from field: double ask_price = 3;
   */
  askPrice: number;

  /**
   * Size at best ask
   *
   * @generated from field: double ask_size = 4;
   */
  askSize: number;

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

/**
 * Describes the message trading.Quote.
 * Use `create(QuoteSchema)` to create a new message.
 */
export declare const QuoteSchema: GenMessage<Quote>;

/**
 * Order direction (buy or sell)
 *
 * @generated from enum trading.OrderSide
 */
export enum OrderSide {
  /**
   * Default/unknown side
   *
   * @generated from enum value: ORDER_SIDE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Buy order (long position)
   *
   * @generated from enum value: ORDER_SIDE_BUY = 1;
   */
  BUY = 1,

  /**
   * Sell order (short position)
   *
   * @generated from enum value: ORDER_SIDE_SELL = 2;
   */
  SELL = 2,
}

/**
 * Describes the enum trading.OrderSide.
 */
export declare const OrderSideSchema: GenEnum<OrderSide>;

/**
 * Order type determining execution behavior
 *
 * @generated from enum trading.OrderType
 */
export enum OrderType {
  /**
   * Default/unknown type
   *
   * @generated from enum value: ORDER_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Execute immediately at market price
   *
   * @generated from enum value: ORDER_TYPE_MARKET = 1;
   */
  MARKET = 1,

  /**
   * Execute only at specified price or better
   *
   * @generated from enum value: ORDER_TYPE_LIMIT = 2;
   */
  LIMIT = 2,

  /**
   * Market order triggered at stop price
   *
   * @generated from enum value: ORDER_TYPE_STOP = 3;
   */
  STOP = 3,

  /**
   * Limit order triggered at stop price
   *
   * @generated from enum value: ORDER_TYPE_STOP_LIMIT = 4;
   */
  STOP_LIMIT = 4,
}

/**
 * Describes the enum trading.OrderType.
 */
export declare const OrderTypeSchema: GenEnum<OrderType>;

/**
 * Current status of an order in its lifecycle
 *
 * @generated from enum trading.OrderStatus
 */
export enum OrderStatus {
  /**
   * Default/unknown status
   *
   * @generated from enum value: ORDER_STATUS_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Order created but not yet submitted
   *
   * @generated from enum value: ORDER_STATUS_PENDING = 1;
   */
  PENDING = 1,

  /**
   * Order submitted to exchange
   *
   * @generated from enum value: ORDER_STATUS_SUBMITTED = 2;
   */
  SUBMITTED = 2,

  /**
   * Order partially executed
   *
   * @generated from enum value: ORDER_STATUS_PARTIALLY_FILLED = 3;
   */
  PARTIALLY_FILLED = 3,

  /**
   * Order completely executed
   *
   * @generated from enum value: ORDER_STATUS_FILLED = 4;
   */
  FILLED = 4,

  /**
   * Order cancelled by user or system
   *
   * @generated from enum value: ORDER_STATUS_CANCELLED = 5;
   */
  CANCELLED = 5,

  /**
   * Order rejected by exchange or risk system
   *
   * @generated from enum value: ORDER_STATUS_REJECTED = 6;
   */
  REJECTED = 6,
}

/**
 * Describes the enum trading.OrderStatus.
 */
export declare const OrderStatusSchema: GenEnum<OrderStatus>;

/**
 * Type of order event notification
 *
 * @generated from enum trading.OrderEventType
 */
export enum OrderEventType {
  /**
   * Default/unknown event
   *
   * @generated from enum value: ORDER_EVENT_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Order was created
   *
   * @generated from enum value: ORDER_EVENT_TYPE_CREATED = 1;
   */
  CREATED = 1,

  /**
   * Order details were updated
   *
   * @generated from enum value: ORDER_EVENT_TYPE_UPDATED = 2;
   */
  UPDATED = 2,

  /**
   * Order was executed (full or partial)
   *
   * @generated from enum value: ORDER_EVENT_TYPE_FILLED = 3;
   */
  FILLED = 3,

  /**
   * Order was cancelled
   *
   * @generated from enum value: ORDER_EVENT_TYPE_CANCELLED = 4;
   */
  CANCELLED = 4,

  /**
   * Order was partially filled
   *
   * @generated from enum value: ORDER_EVENT_TYPE_PARTIALLY_FILLED = 5;
   */
  PARTIALLY_FILLED = 5,

  /**
   * Order was rejected
   *
   * @generated from enum value: ORDER_EVENT_TYPE_REJECTED = 6;
   */
  REJECTED = 6,
}

/**
 * Describes the enum trading.OrderEventType.
 */
export declare const OrderEventTypeSchema: GenEnum<OrderEventType>;

/**
 * Type of position change event
 *
 * @generated from enum trading.PositionEventType
 */
export enum PositionEventType {
  /**
   * Default/unknown event
   *
   * @generated from enum value: POSITION_EVENT_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * New position was opened
   *
   * @generated from enum value: POSITION_EVENT_TYPE_OPENED = 1;
   */
  OPENED = 1,

  /**
   * Existing position was modified
   *
   * @generated from enum value: POSITION_EVENT_TYPE_UPDATED = 2;
   */
  UPDATED = 2,

  /**
   * Position was closed
   *
   * @generated from enum value: POSITION_EVENT_TYPE_CLOSED = 3;
   */
  CLOSED = 3,
}

/**
 * Describes the enum trading.PositionEventType.
 */
export declare const PositionEventTypeSchema: GenEnum<PositionEventType>;

/**
 * Type of market data being streamed
 *
 * @generated from enum trading.MarketDataType
 */
export enum MarketDataType {
  /**
   * Default/unknown type
   *
   * @generated from enum value: MARKET_DATA_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Trade/transaction data
   *
   * @generated from enum value: MARKET_DATA_TYPE_TRADE = 1;
   */
  TRADE = 1,

  /**
   * Best bid/ask quotes
   *
   * @generated from enum value: MARKET_DATA_TYPE_QUOTE = 2;
   */
  QUOTE = 2,

  /**
   * Full order book depth
   *
   * @generated from enum value: MARKET_DATA_TYPE_ORDER_BOOK = 3;
   */
  ORDER_BOOK = 3,
}

/**
 * Describes the enum trading.MarketDataType.
 */
export declare const MarketDataTypeSchema: GenEnum<MarketDataType>;

/**
 * Trading Service provides comprehensive real-time trading operations for high-frequency trading.
 * This service handles order management, position tracking, market data streaming, and execution monitoring.
 * All operations are designed for ultra-low latency with microsecond precision timing.
 *
 * @generated from service trading.TradingService
 */
export declare const TradingService: GenService<{
  /**
   * Order Management Operations
   * Submit a new trading order with validation and risk checks
   *
   * @generated from rpc trading.TradingService.SubmitOrder
   */
  submitOrder: {
    methodKind: "unary";
    input: typeof SubmitOrderRequestSchema;
    output: typeof SubmitOrderResponseSchema;
  },
  /**
   * Cancel an existing order by order ID
   *
   * @generated from rpc trading.TradingService.CancelOrder
   */
  cancelOrder: {
    methodKind: "unary";
    input: typeof CancelOrderRequestSchema;
    output: typeof CancelOrderResponseSchema;
  },
  /**
   * Get current status of a specific order
   *
   * @generated from rpc trading.TradingService.GetOrderStatus
   */
  getOrderStatus: {
    methodKind: "unary";
    input: typeof GetOrderStatusRequestSchema;
    output: typeof GetOrderStatusResponseSchema;
  },
  /**
   * Stream real-time order events for monitoring order lifecycle
   *
   * @generated from rpc trading.TradingService.StreamOrders
   */
  streamOrders: {
    methodKind: "server_streaming";
    input: typeof StreamOrdersRequestSchema;
    output: typeof OrderEventSchema;
  },
  /**
   * Position Management Operations
   * Get current positions for account and/or symbol
   *
   * @generated from rpc trading.TradingService.GetPositions
   */
  getPositions: {
    methodKind: "unary";
    input: typeof GetPositionsRequestSchema;
    output: typeof GetPositionsResponseSchema;
  },
  /**
   * Stream real-time position updates as trades execute
   *
   * @generated from rpc trading.TradingService.StreamPositions
   */
  streamPositions: {
    methodKind: "server_streaming";
    input: typeof StreamPositionsRequestSchema;
    output: typeof PositionEventSchema;
  },
  /**
   * Get comprehensive portfolio summary with P&L and risk metrics
   *
   * @generated from rpc trading.TradingService.GetPortfolioSummary
   */
  getPortfolioSummary: {
    methodKind: "unary";
    input: typeof GetPortfolioSummaryRequestSchema;
    output: typeof GetPortfolioSummaryResponseSchema;
  },
  /**
   * Market Data Operations
   * Stream real-time market data (trades, quotes, order book)
   *
   * @generated from rpc trading.TradingService.StreamMarketData
   */
  streamMarketData: {
    methodKind: "server_streaming";
    input: typeof StreamMarketDataRequestSchema;
    output: typeof MarketDataEventSchema;
  },
  /**
   * Get current order book snapshot for a symbol
   *
   * @generated from rpc trading.TradingService.GetOrderBook
   */
  getOrderBook: {
    methodKind: "unary";
    input: typeof GetOrderBookRequestSchema;
    output: typeof GetOrderBookResponseSchema;
  },
  /**
   * Execution Operations
   * Stream real-time trade executions as they occur
   *
   * @generated from rpc trading.TradingService.StreamExecutions
   */
  streamExecutions: {
    methodKind: "server_streaming";
    input: typeof StreamExecutionsRequestSchema;
    output: typeof ExecutionEventSchema;
  },
  /**
   * Get historical execution data with filtering options
   *
   * @generated from rpc trading.TradingService.GetExecutionHistory
   */
  getExecutionHistory: {
    methodKind: "unary";
    input: typeof GetExecutionHistoryRequestSchema;
    output: typeof GetExecutionHistoryResponseSchema;
  },
  /**
   * ML-specific Trading Operations
   * Submit ML-generated trading order with ensemble predictions
   *
   * @generated from rpc trading.TradingService.SubmitMLOrder
   */
  submitMLOrder: {
    methodKind: "unary";
    input: typeof MLOrderRequestSchema;
    output: typeof MLOrderResponseSchema;
  },
  /**
   * Get ML prediction history with outcomes
   *
   * @generated from rpc trading.TradingService.GetMLPredictions
   */
  getMLPredictions: {
    methodKind: "unary";
    input: typeof MLPredictionsRequestSchema;
    output: typeof MLPredictionsResponseSchema;
  },
  /**
   * Get ML model performance metrics
   *
   * @generated from rpc trading.TradingService.GetMLPerformance
   */
  getMLPerformance: {
    methodKind: "unary";
    input: typeof MLPerformanceRequestSchema;
    output: typeof MLPerformanceResponseSchema;
  },
  /**
   * Wave D: Regime Detection Operations
   * Get current regime state for a symbol
   *
   * @generated from rpc trading.TradingService.GetRegimeState
   */
  getRegimeState: {
    methodKind: "unary";
    input: typeof GetRegimeStateRequestSchema;
    output: typeof GetRegimeStateResponseSchema;
  },
  /**
   * Get regime transition history for a symbol
   *
   * @generated from rpc trading.TradingService.GetRegimeTransitions
   */
  getRegimeTransitions: {
    methodKind: "unary";
    input: typeof GetRegimeTransitionsRequestSchema;
    output: typeof GetRegimeTransitionsResponseSchema;
  },
  /**
   * Server-streaming: polls GetPortfolioSummary at gateway level
   *
   * @generated from rpc trading.TradingService.StreamPortfolioSummary
   */
  streamPortfolioSummary: {
    methodKind: "server_streaming";
    input: typeof StreamPortfolioSummaryRequestSchema;
    output: typeof GetPortfolioSummaryResponseSchema;
  },
  /**
   * Server-streaming: polls GetOrderBook at gateway level
   *
   * @generated from rpc trading.TradingService.StreamOrderBook
   */
  streamOrderBook: {
    methodKind: "server_streaming";
    input: typeof StreamOrderBookRequestSchema;
    output: typeof GetOrderBookResponseSchema;
  },
}>;

