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

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

/**
 * Describes the file fxt_trading.proto.
 */
export declare const file_fxt_trading: GenFile;

/**
 * Order submission request
 *
 * @generated from message foxhunt.tli.SubmitOrderRequest
 */
export declare type SubmitOrderRequest = Message<"foxhunt.tli.SubmitOrderRequest"> & {
  /**
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * @generated from field: foxhunt.tli.OrderSide side = 2;
   */
  side: OrderSide;

  /**
   * @generated from field: foxhunt.tli.OrderType order_type = 3;
   */
  orderType: OrderType;

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

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

  /**
   * @generated from field: optional double stop_price = 6;
   */
  stopPrice?: number;

  /**
   * @generated from field: string time_in_force = 7;
   */
  timeInForce: string;

  /**
   * @generated from field: string client_order_id = 8;
   */
  clientOrderId: string;
};

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

/**
 * Order submission response
 *
 * @generated from message foxhunt.tli.SubmitOrderResponse
 */
export declare type SubmitOrderResponse = Message<"foxhunt.tli.SubmitOrderResponse"> & {
  /**
   * @generated from field: bool success = 1;
   */
  success: boolean;

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

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

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

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

/**
 * Order cancellation request
 *
 * @generated from message foxhunt.tli.CancelOrderRequest
 */
export declare type CancelOrderRequest = Message<"foxhunt.tli.CancelOrderRequest"> & {
  /**
   * @generated from field: string order_id = 1;
   */
  orderId: string;

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

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

/**
 * Order cancellation response
 *
 * @generated from message foxhunt.tli.CancelOrderResponse
 */
export declare type CancelOrderResponse = Message<"foxhunt.tli.CancelOrderResponse"> & {
  /**
   * @generated from field: bool success = 1;
   */
  success: boolean;

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

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

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

/**
 * Order status request
 *
 * @generated from message foxhunt.tli.GetOrderStatusRequest
 */
export declare type GetOrderStatusRequest = Message<"foxhunt.tli.GetOrderStatusRequest"> & {
  /**
   * @generated from field: string order_id = 1;
   */
  orderId: string;
};

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

/**
 * Order status response
 *
 * @generated from message foxhunt.tli.GetOrderStatusResponse
 */
export declare type GetOrderStatusResponse = Message<"foxhunt.tli.GetOrderStatusResponse"> & {
  /**
   * @generated from field: string order_id = 1;
   */
  orderId: string;

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

  /**
   * @generated from field: foxhunt.tli.OrderSide side = 3;
   */
  side: OrderSide;

  /**
   * @generated from field: foxhunt.tli.OrderType order_type = 4;
   */
  orderType: OrderType;

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

  /**
   * @generated from field: double filled_quantity = 6;
   */
  filledQuantity: number;

  /**
   * @generated from field: double remaining_quantity = 7;
   */
  remainingQuantity: number;

  /**
   * @generated from field: double average_price = 8;
   */
  averagePrice: number;

  /**
   * @generated from field: foxhunt.tli.OrderStatus status = 9;
   */
  status: OrderStatus;

  /**
   * @generated from field: int64 created_at_unix_nanos = 10;
   */
  createdAtUnixNanos: bigint;

  /**
   * @generated from field: int64 updated_at_unix_nanos = 11;
   */
  updatedAtUnixNanos: bigint;
};

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

/**
 * Account information request
 *
 * @generated from message foxhunt.tli.GetAccountInfoRequest
 */
export declare type GetAccountInfoRequest = Message<"foxhunt.tli.GetAccountInfoRequest"> & {
  /**
   * @generated from field: string account_id = 1;
   */
  accountId: string;
};

/**
 * Describes the message foxhunt.tli.GetAccountInfoRequest.
 * Use `create(GetAccountInfoRequestSchema)` to create a new message.
 */
export declare const GetAccountInfoRequestSchema: GenMessage<GetAccountInfoRequest>;

/**
 * Account information response
 *
 * @generated from message foxhunt.tli.GetAccountInfoResponse
 */
export declare type GetAccountInfoResponse = Message<"foxhunt.tli.GetAccountInfoResponse"> & {
  /**
   * @generated from field: string account_id = 1;
   */
  accountId: string;

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

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

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

  /**
   * @generated from field: double maintenance_margin = 5;
   */
  maintenanceMargin: number;

  /**
   * @generated from field: double day_trading_buying_power = 6;
   */
  dayTradingBuyingPower: number;
};

/**
 * Describes the message foxhunt.tli.GetAccountInfoResponse.
 * Use `create(GetAccountInfoResponseSchema)` to create a new message.
 */
export declare const GetAccountInfoResponseSchema: GenMessage<GetAccountInfoResponse>;

/**
 * Positions request
 *
 * @generated from message foxhunt.tli.GetPositionsRequest
 */
export declare type GetPositionsRequest = Message<"foxhunt.tli.GetPositionsRequest"> & {
  /**
   * Filter by symbol if provided
   *
   * @generated from field: optional string symbol = 1;
   */
  symbol?: string;
};

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

/**
 * Positions response
 *
 * @generated from message foxhunt.tli.GetPositionsResponse
 */
export declare type GetPositionsResponse = Message<"foxhunt.tli.GetPositionsResponse"> & {
  /**
   * @generated from field: repeated foxhunt.tli.Position positions = 1;
   */
  positions: Position[];
};

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

/**
 * Position information
 *
 * @generated from message foxhunt.tli.Position
 */
export declare type Position = Message<"foxhunt.tli.Position"> & {
  /**
   * @generated from field: string symbol = 1;
   */
  symbol: string;

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

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

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

  /**
   * @generated from field: double average_cost = 5;
   */
  averageCost: number;

  /**
   * @generated from field: double unrealized_pnl = 6;
   */
  unrealizedPnl: number;

  /**
   * @generated from field: double realized_pnl = 7;
   */
  realizedPnl: number;
};

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

/**
 * Market data subscription request
 *
 * @generated from message foxhunt.tli.SubscribeMarketDataRequest
 */
export declare type SubscribeMarketDataRequest = Message<"foxhunt.tli.SubscribeMarketDataRequest"> & {
  /**
   * @generated from field: repeated string symbols = 1;
   */
  symbols: string[];

  /**
   * @generated from field: repeated foxhunt.tli.MarketDataType data_types = 2;
   */
  dataTypes: MarketDataType[];
};

/**
 * Describes the message foxhunt.tli.SubscribeMarketDataRequest.
 * Use `create(SubscribeMarketDataRequestSchema)` to create a new message.
 */
export declare const SubscribeMarketDataRequestSchema: GenMessage<SubscribeMarketDataRequest>;

/**
 * Market data event
 *
 * @generated from message foxhunt.tli.MarketDataEvent
 */
export declare type MarketDataEvent = Message<"foxhunt.tli.MarketDataEvent"> & {
  /**
   * @generated from oneof foxhunt.tli.MarketDataEvent.event
   */
  event: {
    /**
     * @generated from field: foxhunt.tli.TickData tick = 1;
     */
    value: TickData;
    case: "tick";
  } | {
    /**
     * @generated from field: foxhunt.tli.QuoteData quote = 2;
     */
    value: QuoteData;
    case: "quote";
  } | {
    /**
     * @generated from field: foxhunt.tli.TradeData trade = 3;
     */
    value: TradeData;
    case: "trade";
  } | {
    /**
     * @generated from field: foxhunt.tli.BarData bar = 4;
     */
    value: BarData;
    case: "bar";
  } | { case: undefined; value?: undefined };
};

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

/**
 * Tick data
 *
 * @generated from message foxhunt.tli.TickData
 */
export declare type TickData = Message<"foxhunt.tli.TickData"> & {
  /**
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * @generated from field: int64 timestamp_unix_nanos = 2;
   */
  timestampUnixNanos: bigint;

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

  /**
   * @generated from field: uint64 size = 4;
   */
  size: bigint;

  /**
   * @generated from field: string exchange = 5;
   */
  exchange: string;
};

/**
 * Describes the message foxhunt.tli.TickData.
 * Use `create(TickDataSchema)` to create a new message.
 */
export declare const TickDataSchema: GenMessage<TickData>;

/**
 * Quote data
 *
 * @generated from message foxhunt.tli.QuoteData
 */
export declare type QuoteData = Message<"foxhunt.tli.QuoteData"> & {
  /**
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * @generated from field: int64 timestamp_unix_nanos = 2;
   */
  timestampUnixNanos: bigint;

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

  /**
   * @generated from field: uint64 bid_size = 4;
   */
  bidSize: bigint;

  /**
   * @generated from field: double ask_price = 5;
   */
  askPrice: number;

  /**
   * @generated from field: uint64 ask_size = 6;
   */
  askSize: bigint;

  /**
   * @generated from field: string exchange = 7;
   */
  exchange: string;
};

/**
 * Describes the message foxhunt.tli.QuoteData.
 * Use `create(QuoteDataSchema)` to create a new message.
 */
export declare const QuoteDataSchema: GenMessage<QuoteData>;

/**
 * Trade data
 *
 * @generated from message foxhunt.tli.TradeData
 */
export declare type TradeData = Message<"foxhunt.tli.TradeData"> & {
  /**
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * @generated from field: int64 timestamp_unix_nanos = 2;
   */
  timestampUnixNanos: bigint;

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

  /**
   * @generated from field: uint64 size = 4;
   */
  size: bigint;

  /**
   * @generated from field: string trade_id = 5;
   */
  tradeId: string;

  /**
   * @generated from field: string exchange = 6;
   */
  exchange: string;
};

/**
 * Describes the message foxhunt.tli.TradeData.
 * Use `create(TradeDataSchema)` to create a new message.
 */
export declare const TradeDataSchema: GenMessage<TradeData>;

/**
 * Bar data
 *
 * @generated from message foxhunt.tli.BarData
 */
export declare type BarData = Message<"foxhunt.tli.BarData"> & {
  /**
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * @generated from field: int64 timestamp_unix_nanos = 2;
   */
  timestampUnixNanos: bigint;

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

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

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

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

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

  /**
   * @generated from field: uint64 volume = 8;
   */
  volume: bigint;

  /**
   * @generated from field: optional double vwap = 9;
   */
  vwap?: number;
};

/**
 * Describes the message foxhunt.tli.BarData.
 * Use `create(BarDataSchema)` to create a new message.
 */
export declare const BarDataSchema: GenMessage<BarData>;

/**
 * Order updates subscription request
 *
 * @generated from message foxhunt.tli.SubscribeOrderUpdatesRequest
 */
export declare type SubscribeOrderUpdatesRequest = Message<"foxhunt.tli.SubscribeOrderUpdatesRequest"> & {
  /**
   * @generated from field: optional string account_id = 1;
   */
  accountId?: string;
};

/**
 * Describes the message foxhunt.tli.SubscribeOrderUpdatesRequest.
 * Use `create(SubscribeOrderUpdatesRequestSchema)` to create a new message.
 */
export declare const SubscribeOrderUpdatesRequestSchema: GenMessage<SubscribeOrderUpdatesRequest>;

/**
 * Order update event
 *
 * @generated from message foxhunt.tli.OrderUpdateEvent
 */
export declare type OrderUpdateEvent = Message<"foxhunt.tli.OrderUpdateEvent"> & {
  /**
   * @generated from field: string order_id = 1;
   */
  orderId: string;

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

  /**
   * @generated from field: foxhunt.tli.OrderStatus status = 3;
   */
  status: OrderStatus;

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

  /**
   * @generated from field: double remaining_quantity = 5;
   */
  remainingQuantity: number;

  /**
   * @generated from field: double last_fill_price = 6;
   */
  lastFillPrice: number;

  /**
   * @generated from field: uint64 last_fill_quantity = 7;
   */
  lastFillQuantity: bigint;

  /**
   * @generated from field: int64 timestamp_unix_nanos = 8;
   */
  timestampUnixNanos: bigint;

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

/**
 * Describes the message foxhunt.tli.OrderUpdateEvent.
 * Use `create(OrderUpdateEventSchema)` to create a new message.
 */
export declare const OrderUpdateEventSchema: GenMessage<OrderUpdateEvent>;

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

  /**
   * @generated from field: optional int64 start_time_unix_nanos = 2;
   */
  startTimeUnixNanos?: bigint;

  /**
   * @generated from field: optional int64 end_time_unix_nanos = 3;
   */
  endTimeUnixNanos?: bigint;
};

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

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

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

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

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

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

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

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

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

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

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

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

  /**
   * @generated from field: optional int64 start_time_unix_nanos = 3;
   */
  startTimeUnixNanos?: bigint;

  /**
   * @generated from field: optional int64 end_time_unix_nanos = 4;
   */
  endTimeUnixNanos?: bigint;
};

/**
 * Describes the message foxhunt.tli.GetLatencyRequest.
 * Use `create(GetLatencyRequestSchema)` to create a new message.
 */
export declare const GetLatencyRequestSchema: GenMessage<GetLatencyRequest>;

/**
 * @generated from message foxhunt.tli.GetLatencyResponse
 */
export declare type GetLatencyResponse = Message<"foxhunt.tli.GetLatencyResponse"> & {
  /**
   * @generated from field: double p50_micros = 1;
   */
  p50Micros: number;

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

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

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

  /**
   * @generated from field: double avg_micros = 5;
   */
  avgMicros: number;

  /**
   * @generated from field: double max_micros = 6;
   */
  maxMicros: number;

  /**
   * @generated from field: double min_micros = 7;
   */
  minMicros: number;

  /**
   * @generated from field: uint64 sample_count = 8;
   */
  sampleCount: bigint;
};

/**
 * Describes the message foxhunt.tli.GetLatencyResponse.
 * Use `create(GetLatencyResponseSchema)` to create a new message.
 */
export declare const GetLatencyResponseSchema: GenMessage<GetLatencyResponse>;

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

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

  /**
   * @generated from field: optional int64 start_time_unix_nanos = 3;
   */
  startTimeUnixNanos?: bigint;

  /**
   * @generated from field: optional int64 end_time_unix_nanos = 4;
   */
  endTimeUnixNanos?: bigint;
};

/**
 * Describes the message foxhunt.tli.GetThroughputRequest.
 * Use `create(GetThroughputRequestSchema)` to create a new message.
 */
export declare const GetThroughputRequestSchema: GenMessage<GetThroughputRequest>;

/**
 * @generated from message foxhunt.tli.GetThroughputResponse
 */
export declare type GetThroughputResponse = Message<"foxhunt.tli.GetThroughputResponse"> & {
  /**
   * @generated from field: double requests_per_second = 1;
   */
  requestsPerSecond: number;

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

  /**
   * @generated from field: uint64 total_requests = 3;
   */
  totalRequests: bigint;

  /**
   * @generated from field: uint64 total_bytes = 4;
   */
  totalBytes: bigint;

  /**
   * @generated from field: uint64 error_count = 5;
   */
  errorCount: bigint;

  /**
   * @generated from field: double error_rate = 6;
   */
  errorRate: number;
};

/**
 * Describes the message foxhunt.tli.GetThroughputResponse.
 * Use `create(GetThroughputResponseSchema)` to create a new message.
 */
export declare const GetThroughputResponseSchema: GenMessage<GetThroughputResponse>;

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

  /**
   * @generated from field: uint32 interval_seconds = 2;
   */
  intervalSeconds: number;
};

/**
 * Describes the message foxhunt.tli.SubscribeMetricsRequest.
 * Use `create(SubscribeMetricsRequestSchema)` to create a new message.
 */
export declare const SubscribeMetricsRequestSchema: GenMessage<SubscribeMetricsRequest>;

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

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

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

/**
 * Configuration messages
 *
 * @generated from message foxhunt.tli.UpdateParametersRequest
 */
export declare type UpdateParametersRequest = Message<"foxhunt.tli.UpdateParametersRequest"> & {
  /**
   * @generated from field: map<string, string> parameters = 1;
   */
  parameters: { [key: string]: string };

  /**
   * @generated from field: bool persist = 2;
   */
  persist: boolean;
};

/**
 * Describes the message foxhunt.tli.UpdateParametersRequest.
 * Use `create(UpdateParametersRequestSchema)` to create a new message.
 */
export declare const UpdateParametersRequestSchema: GenMessage<UpdateParametersRequest>;

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

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

  /**
   * @generated from field: repeated string updated_keys = 3;
   */
  updatedKeys: string[];
};

/**
 * Describes the message foxhunt.tli.UpdateParametersResponse.
 * Use `create(UpdateParametersResponseSchema)` to create a new message.
 */
export declare const UpdateParametersResponseSchema: GenMessage<UpdateParametersResponse>;

/**
 * @generated from message foxhunt.tli.GetConfigRequest
 */
export declare type GetConfigRequest = Message<"foxhunt.tli.GetConfigRequest"> & {
  /**
   * Empty to get all config
   *
   * @generated from field: repeated string keys = 1;
   */
  keys: string[];
};

/**
 * Describes the message foxhunt.tli.GetConfigRequest.
 * Use `create(GetConfigRequestSchema)` to create a new message.
 */
export declare const GetConfigRequestSchema: GenMessage<GetConfigRequest>;

/**
 * @generated from message foxhunt.tli.GetConfigResponse
 */
export declare type GetConfigResponse = Message<"foxhunt.tli.GetConfigResponse"> & {
  /**
   * @generated from field: map<string, string> config = 1;
   */
  config: { [key: string]: string };

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

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

/**
 * Describes the message foxhunt.tli.GetConfigResponse.
 * Use `create(GetConfigResponseSchema)` to create a new message.
 */
export declare const GetConfigResponseSchema: GenMessage<GetConfigResponse>;

/**
 * @generated from message foxhunt.tli.SubscribeConfigRequest
 */
export declare type SubscribeConfigRequest = Message<"foxhunt.tli.SubscribeConfigRequest"> & {
  /**
   * Empty to watch all config changes
   *
   * @generated from field: repeated string keys = 1;
   */
  keys: string[];
};

/**
 * Describes the message foxhunt.tli.SubscribeConfigRequest.
 * Use `create(SubscribeConfigRequestSchema)` to create a new message.
 */
export declare const SubscribeConfigRequestSchema: GenMessage<SubscribeConfigRequest>;

/**
 * @generated from message foxhunt.tli.ConfigEvent
 */
export declare type ConfigEvent = Message<"foxhunt.tli.ConfigEvent"> & {
  /**
   * @generated from field: string key = 1;
   */
  key: string;

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

  /**
   * @generated from field: string old_value = 3;
   */
  oldValue: string;

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

/**
 * Describes the message foxhunt.tli.ConfigEvent.
 * Use `create(ConfigEventSchema)` to create a new message.
 */
export declare const ConfigEventSchema: GenMessage<ConfigEvent>;

/**
 * @generated from message foxhunt.tli.GetSystemStatusRequest
 */
export declare type GetSystemStatusRequest = Message<"foxhunt.tli.GetSystemStatusRequest"> & {
  /**
   * Empty to get all services
   *
   * @generated from field: repeated string service_names = 1;
   */
  serviceNames: string[];
};

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

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

  /**
   * @generated from field: repeated foxhunt.tli.ServiceStatus services = 2;
   */
  services: ServiceStatus[];

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

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

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

  /**
   * @generated from field: foxhunt.tli.SystemStatus status = 2;
   */
  status: SystemStatus;

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

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

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

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

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

/**
 * Describes the message foxhunt.tli.SubscribeSystemStatusRequest.
 * Use `create(SubscribeSystemStatusRequestSchema)` to create a new message.
 */
export declare const SubscribeSystemStatusRequestSchema: GenMessage<SubscribeSystemStatusRequest>;

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

  /**
   * @generated from field: foxhunt.tli.SystemStatus status = 2;
   */
  status: SystemStatus;

  /**
   * @generated from field: foxhunt.tli.SystemStatus previous_status = 3;
   */
  previousStatus: SystemStatus;

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

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

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

/**
 * VaR calculation request
 *
 * @generated from message foxhunt.tli.GetVaRRequest
 */
export declare type GetVaRRequest = Message<"foxhunt.tli.GetVaRRequest"> & {
  /**
   * @generated from field: repeated string symbols = 1;
   */
  symbols: string[];

  /**
   * e.g., 0.95, 0.99
   *
   * @generated from field: double confidence_level = 2;
   */
  confidenceLevel: number;

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

  /**
   * @generated from field: foxhunt.tli.VaRMethodology methodology = 4;
   */
  methodology: VaRMethodology;
};

/**
 * Describes the message foxhunt.tli.GetVaRRequest.
 * Use `create(GetVaRRequestSchema)` to create a new message.
 */
export declare const GetVaRRequestSchema: GenMessage<GetVaRRequest>;

/**
 * VaR calculation response
 *
 * @generated from message foxhunt.tli.GetVaRResponse
 */
export declare type GetVaRResponse = Message<"foxhunt.tli.GetVaRResponse"> & {
  /**
   * @generated from field: double portfolio_var = 1;
   */
  portfolioVar: number;

  /**
   * @generated from field: repeated foxhunt.tli.SymbolVaR symbol_vars = 2;
   */
  symbolVars: SymbolVaR[];

  /**
   * @generated from field: int64 timestamp_unix_nanos = 3;
   */
  timestampUnixNanos: bigint;

  /**
   * @generated from field: string methodology_used = 4;
   */
  methodologyUsed: string;
};

/**
 * Describes the message foxhunt.tli.GetVaRResponse.
 * Use `create(GetVaRResponseSchema)` to create a new message.
 */
export declare const GetVaRResponseSchema: GenMessage<GetVaRResponse>;

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

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

  /**
   * @generated from field: double contribution_percent = 3;
   */
  contributionPercent: number;
};

/**
 * Describes the message foxhunt.tli.SymbolVaR.
 * Use `create(SymbolVaRSchema)` to create a new message.
 */
export declare const SymbolVaRSchema: GenMessage<SymbolVaR>;

/**
 * Position risk analysis
 *
 * @generated from message foxhunt.tli.GetPositionRiskRequest
 */
export declare type GetPositionRiskRequest = Message<"foxhunt.tli.GetPositionRiskRequest"> & {
  /**
   * Empty for all positions
   *
   * @generated from field: optional string symbol = 1;
   */
  symbol?: string;
};

/**
 * Describes the message foxhunt.tli.GetPositionRiskRequest.
 * Use `create(GetPositionRiskRequestSchema)` to create a new message.
 */
export declare const GetPositionRiskRequestSchema: GenMessage<GetPositionRiskRequest>;

/**
 * @generated from message foxhunt.tli.GetPositionRiskResponse
 */
export declare type GetPositionRiskResponse = Message<"foxhunt.tli.GetPositionRiskResponse"> & {
  /**
   * @generated from field: repeated foxhunt.tli.PositionRisk positions = 1;
   */
  positions: PositionRisk[];

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

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

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

/**
 * Describes the message foxhunt.tli.GetPositionRiskResponse.
 * Use `create(GetPositionRiskResponseSchema)` to create a new message.
 */
export declare const GetPositionRiskResponseSchema: GenMessage<GetPositionRiskResponse>;

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

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

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

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

  /**
   * @generated from field: double concentration_percent = 5;
   */
  concentrationPercent: number;

  /**
   * @generated from field: foxhunt.tli.RiskLevel risk_level = 6;
   */
  riskLevel: RiskLevel;
};

/**
 * Describes the message foxhunt.tli.PositionRisk.
 * Use `create(PositionRiskSchema)` to create a new message.
 */
export declare const PositionRiskSchema: GenMessage<PositionRisk>;

/**
 * Order validation request
 *
 * @generated from message foxhunt.tli.ValidateOrderRequest
 */
export declare type ValidateOrderRequest = Message<"foxhunt.tli.ValidateOrderRequest"> & {
  /**
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * @generated from field: foxhunt.tli.OrderSide side = 2;
   */
  side: OrderSide;

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

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

  /**
   * @generated from field: string account_id = 5;
   */
  accountId: string;
};

/**
 * Describes the message foxhunt.tli.ValidateOrderRequest.
 * Use `create(ValidateOrderRequestSchema)` to create a new message.
 */
export declare const ValidateOrderRequestSchema: GenMessage<ValidateOrderRequest>;

/**
 * @generated from message foxhunt.tli.ValidateOrderResponse
 */
export declare type ValidateOrderResponse = Message<"foxhunt.tli.ValidateOrderResponse"> & {
  /**
   * @generated from field: bool approved = 1;
   */
  approved: boolean;

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

  /**
   * @generated from field: repeated foxhunt.tli.RiskViolation violations = 3;
   */
  violations: RiskViolation[];

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

  /**
   * @generated from field: double margin_impact = 5;
   */
  marginImpact: number;
};

/**
 * Describes the message foxhunt.tli.ValidateOrderResponse.
 * Use `create(ValidateOrderResponseSchema)` to create a new message.
 */
export declare const ValidateOrderResponseSchema: GenMessage<ValidateOrderResponse>;

/**
 * @generated from message foxhunt.tli.RiskViolation
 */
export declare type RiskViolation = Message<"foxhunt.tli.RiskViolation"> & {
  /**
   * @generated from field: foxhunt.tli.ViolationType type = 1;
   */
  type: ViolationType;

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

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

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

  /**
   * @generated from field: foxhunt.tli.RiskSeverity severity = 5;
   */
  severity: RiskSeverity;
};

/**
 * Describes the message foxhunt.tli.RiskViolation.
 * Use `create(RiskViolationSchema)` to create a new message.
 */
export declare const RiskViolationSchema: GenMessage<RiskViolation>;

/**
 * Risk metrics request
 *
 * @generated from message foxhunt.tli.GetRiskMetricsRequest
 */
export declare type GetRiskMetricsRequest = Message<"foxhunt.tli.GetRiskMetricsRequest"> & {
  /**
   * @generated from field: optional string portfolio_id = 1;
   */
  portfolioId?: string;

  /**
   * @generated from field: optional int64 start_time_unix_nanos = 2;
   */
  startTimeUnixNanos?: bigint;

  /**
   * @generated from field: optional int64 end_time_unix_nanos = 3;
   */
  endTimeUnixNanos?: bigint;
};

/**
 * Describes the message foxhunt.tli.GetRiskMetricsRequest.
 * Use `create(GetRiskMetricsRequestSchema)` to create a new message.
 */
export declare const GetRiskMetricsRequestSchema: GenMessage<GetRiskMetricsRequest>;

/**
 * @generated from message foxhunt.tli.GetRiskMetricsResponse
 */
export declare type GetRiskMetricsResponse = Message<"foxhunt.tli.GetRiskMetricsResponse"> & {
  /**
   * @generated from field: double sharpe_ratio = 1;
   */
  sharpeRatio: number;

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

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

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

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

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

  /**
   * @generated from field: double value_at_risk = 7;
   */
  valueAtRisk: number;

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

  /**
   * @generated from field: int64 timestamp_unix_nanos = 9;
   */
  timestampUnixNanos: bigint;
};

/**
 * Describes the message foxhunt.tli.GetRiskMetricsResponse.
 * Use `create(GetRiskMetricsResponseSchema)` to create a new message.
 */
export declare const GetRiskMetricsResponseSchema: GenMessage<GetRiskMetricsResponse>;

/**
 * Risk alerts subscription
 *
 * @generated from message foxhunt.tli.SubscribeRiskAlertsRequest
 */
export declare type SubscribeRiskAlertsRequest = Message<"foxhunt.tli.SubscribeRiskAlertsRequest"> & {
  /**
   * @generated from field: repeated foxhunt.tli.RiskSeverity min_severity = 1;
   */
  minSeverity: RiskSeverity[];

  /**
   * Empty for all symbols
   *
   * @generated from field: repeated string symbols = 2;
   */
  symbols: string[];
};

/**
 * Describes the message foxhunt.tli.SubscribeRiskAlertsRequest.
 * Use `create(SubscribeRiskAlertsRequestSchema)` to create a new message.
 */
export declare const SubscribeRiskAlertsRequestSchema: GenMessage<SubscribeRiskAlertsRequest>;

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

  /**
   * @generated from field: foxhunt.tli.RiskSeverity severity = 2;
   */
  severity: RiskSeverity;

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

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

  /**
   * @generated from field: double threshold_value = 5;
   */
  thresholdValue: number;

  /**
   * @generated from field: double current_value = 6;
   */
  currentValue: number;

  /**
   * @generated from field: int64 timestamp_unix_nanos = 7;
   */
  timestampUnixNanos: bigint;

  /**
   * @generated from field: bool requires_action = 8;
   */
  requiresAction: boolean;
};

/**
 * Describes the message foxhunt.tli.RiskAlertEvent.
 * Use `create(RiskAlertEventSchema)` to create a new message.
 */
export declare const RiskAlertEventSchema: GenMessage<RiskAlertEvent>;

/**
 * Emergency stop
 *
 * @generated from message foxhunt.tli.EmergencyStopRequest
 */
export declare type EmergencyStopRequest = Message<"foxhunt.tli.EmergencyStopRequest"> & {
  /**
   * @generated from field: foxhunt.tli.EmergencyStopType stop_type = 1;
   */
  stopType: EmergencyStopType;

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

  /**
   * Empty for all
   *
   * @generated from field: repeated string symbols = 3;
   */
  symbols: string[];

  /**
   * @generated from field: bool confirm = 4;
   */
  confirm: boolean;
};

/**
 * Describes the message foxhunt.tli.EmergencyStopRequest.
 * Use `create(EmergencyStopRequestSchema)` to create a new message.
 */
export declare const EmergencyStopRequestSchema: GenMessage<EmergencyStopRequest>;

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

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

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

  /**
   * @generated from field: uint32 positions_closed = 4;
   */
  positionsClosed: number;

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

/**
 * Describes the message foxhunt.tli.EmergencyStopResponse.
 * Use `create(EmergencyStopResponseSchema)` to create a new message.
 */
export declare const EmergencyStopResponseSchema: GenMessage<EmergencyStopResponse>;

/**
 * Start backtest request
 *
 * @generated from message foxhunt.tli.StartBacktestRequest
 */
export declare type StartBacktestRequest = Message<"foxhunt.tli.StartBacktestRequest"> & {
  /**
   * @generated from field: string strategy_name = 1;
   */
  strategyName: string;

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

  /**
   * @generated from field: int64 start_date_unix_nanos = 3;
   */
  startDateUnixNanos: bigint;

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

  /**
   * @generated from field: double initial_capital = 5;
   */
  initialCapital: number;

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

  /**
   * @generated from field: bool save_results = 7;
   */
  saveResults: boolean;

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

/**
 * Describes the message foxhunt.tli.StartBacktestRequest.
 * Use `create(StartBacktestRequestSchema)` to create a new message.
 */
export declare const StartBacktestRequestSchema: GenMessage<StartBacktestRequest>;

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

  /**
   * @generated from field: string backtest_id = 2;
   */
  backtestId: string;

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

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

/**
 * Describes the message foxhunt.tli.StartBacktestResponse.
 * Use `create(StartBacktestResponseSchema)` to create a new message.
 */
export declare const StartBacktestResponseSchema: GenMessage<StartBacktestResponse>;

/**
 * Backtest status
 *
 * @generated from message foxhunt.tli.GetBacktestStatusRequest
 */
export declare type GetBacktestStatusRequest = Message<"foxhunt.tli.GetBacktestStatusRequest"> & {
  /**
   * @generated from field: string backtest_id = 1;
   */
  backtestId: string;
};

/**
 * Describes the message foxhunt.tli.GetBacktestStatusRequest.
 * Use `create(GetBacktestStatusRequestSchema)` to create a new message.
 */
export declare const GetBacktestStatusRequestSchema: GenMessage<GetBacktestStatusRequest>;

/**
 * @generated from message foxhunt.tli.GetBacktestStatusResponse
 */
export declare type GetBacktestStatusResponse = Message<"foxhunt.tli.GetBacktestStatusResponse"> & {
  /**
   * @generated from field: string backtest_id = 1;
   */
  backtestId: string;

  /**
   * @generated from field: foxhunt.tli.BacktestStatus status = 2;
   */
  status: BacktestStatus;

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

  /**
   * @generated from field: string current_date = 4;
   */
  currentDate: string;

  /**
   * @generated from field: uint64 trades_executed = 5;
   */
  tradesExecuted: bigint;

  /**
   * @generated from field: double current_pnl = 6;
   */
  currentPnl: number;

  /**
   * @generated from field: int64 started_at_unix_nanos = 7;
   */
  startedAtUnixNanos: bigint;

  /**
   * @generated from field: optional int64 completed_at_unix_nanos = 8;
   */
  completedAtUnixNanos?: bigint;

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

/**
 * Describes the message foxhunt.tli.GetBacktestStatusResponse.
 * Use `create(GetBacktestStatusResponseSchema)` to create a new message.
 */
export declare const GetBacktestStatusResponseSchema: GenMessage<GetBacktestStatusResponse>;

/**
 * Backtest results
 *
 * @generated from message foxhunt.tli.GetBacktestResultsRequest
 */
export declare type GetBacktestResultsRequest = Message<"foxhunt.tli.GetBacktestResultsRequest"> & {
  /**
   * @generated from field: string backtest_id = 1;
   */
  backtestId: string;

  /**
   * @generated from field: bool include_trades = 2;
   */
  includeTrades: boolean;

  /**
   * @generated from field: bool include_metrics = 3;
   */
  includeMetrics: boolean;
};

/**
 * Describes the message foxhunt.tli.GetBacktestResultsRequest.
 * Use `create(GetBacktestResultsRequestSchema)` to create a new message.
 */
export declare const GetBacktestResultsRequestSchema: GenMessage<GetBacktestResultsRequest>;

/**
 * @generated from message foxhunt.tli.GetBacktestResultsResponse
 */
export declare type GetBacktestResultsResponse = Message<"foxhunt.tli.GetBacktestResultsResponse"> & {
  /**
   * @generated from field: string backtest_id = 1;
   */
  backtestId: string;

  /**
   * @generated from field: foxhunt.tli.BacktestMetrics metrics = 2;
   */
  metrics?: BacktestMetrics;

  /**
   * @generated from field: repeated foxhunt.tli.Trade trades = 3;
   */
  trades: Trade[];

  /**
   * @generated from field: repeated foxhunt.tli.EquityCurvePoint equity_curve = 4;
   */
  equityCurve: EquityCurvePoint[];

  /**
   * @generated from field: repeated foxhunt.tli.DrawdownPeriod drawdown_periods = 5;
   */
  drawdownPeriods: DrawdownPeriod[];
};

/**
 * Describes the message foxhunt.tli.GetBacktestResultsResponse.
 * Use `create(GetBacktestResultsResponseSchema)` to create a new message.
 */
export declare const GetBacktestResultsResponseSchema: GenMessage<GetBacktestResultsResponse>;

/**
 * @generated from message foxhunt.tli.BacktestMetrics
 */
export declare type BacktestMetrics = Message<"foxhunt.tli.BacktestMetrics"> & {
  /**
   * @generated from field: double total_return = 1;
   */
  totalReturn: number;

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

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

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

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

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

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

  /**
   * @generated from field: double profit_factor = 8;
   */
  profitFactor: number;

  /**
   * @generated from field: uint64 total_trades = 9;
   */
  totalTrades: bigint;

  /**
   * @generated from field: uint64 winning_trades = 10;
   */
  winningTrades: bigint;

  /**
   * @generated from field: uint64 losing_trades = 11;
   */
  losingTrades: bigint;

  /**
   * @generated from field: double avg_win = 12;
   */
  avgWin: number;

  /**
   * @generated from field: double avg_loss = 13;
   */
  avgLoss: number;

  /**
   * @generated from field: double largest_win = 14;
   */
  largestWin: number;

  /**
   * @generated from field: double largest_loss = 15;
   */
  largestLoss: number;

  /**
   * @generated from field: double calmar_ratio = 16;
   */
  calmarRatio: number;

  /**
   * @generated from field: int64 backtest_duration_nanos = 17;
   */
  backtestDurationNanos: bigint;
};

/**
 * Describes the message foxhunt.tli.BacktestMetrics.
 * Use `create(BacktestMetricsSchema)` to create a new message.
 */
export declare const BacktestMetricsSchema: GenMessage<BacktestMetrics>;

/**
 * @generated from message foxhunt.tli.Trade
 */
export declare type Trade = Message<"foxhunt.tli.Trade"> & {
  /**
   * @generated from field: string trade_id = 1;
   */
  tradeId: string;

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

  /**
   * @generated from field: foxhunt.tli.OrderSide side = 3;
   */
  side: OrderSide;

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

  /**
   * @generated from field: double entry_price = 5;
   */
  entryPrice: number;

  /**
   * @generated from field: double exit_price = 6;
   */
  exitPrice: number;

  /**
   * @generated from field: int64 entry_time_unix_nanos = 7;
   */
  entryTimeUnixNanos: bigint;

  /**
   * @generated from field: int64 exit_time_unix_nanos = 8;
   */
  exitTimeUnixNanos: bigint;

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

  /**
   * @generated from field: double return_percent = 10;
   */
  returnPercent: number;

  /**
   * @generated from field: string entry_signal = 11;
   */
  entrySignal: string;

  /**
   * @generated from field: string exit_signal = 12;
   */
  exitSignal: string;
};

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

/**
 * @generated from message foxhunt.tli.EquityCurvePoint
 */
export declare type EquityCurvePoint = Message<"foxhunt.tli.EquityCurvePoint"> & {
  /**
   * @generated from field: int64 timestamp_unix_nanos = 1;
   */
  timestampUnixNanos: bigint;

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

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

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

/**
 * Describes the message foxhunt.tli.EquityCurvePoint.
 * Use `create(EquityCurvePointSchema)` to create a new message.
 */
export declare const EquityCurvePointSchema: GenMessage<EquityCurvePoint>;

/**
 * @generated from message foxhunt.tli.DrawdownPeriod
 */
export declare type DrawdownPeriod = Message<"foxhunt.tli.DrawdownPeriod"> & {
  /**
   * @generated from field: int64 start_time_unix_nanos = 1;
   */
  startTimeUnixNanos: bigint;

  /**
   * @generated from field: int64 end_time_unix_nanos = 2;
   */
  endTimeUnixNanos: bigint;

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

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

  /**
   * @generated from field: double drawdown_percent = 5;
   */
  drawdownPercent: number;

  /**
   * @generated from field: uint32 duration_days = 6;
   */
  durationDays: number;
};

/**
 * Describes the message foxhunt.tli.DrawdownPeriod.
 * Use `create(DrawdownPeriodSchema)` to create a new message.
 */
export declare const DrawdownPeriodSchema: GenMessage<DrawdownPeriod>;

/**
 * List backtests
 *
 * @generated from message foxhunt.tli.ListBacktestsRequest
 */
export declare type ListBacktestsRequest = Message<"foxhunt.tli.ListBacktestsRequest"> & {
  /**
   * @generated from field: uint32 limit = 1;
   */
  limit: number;

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

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

  /**
   * @generated from field: optional foxhunt.tli.BacktestStatus status_filter = 4;
   */
  statusFilter?: BacktestStatus;
};

/**
 * Describes the message foxhunt.tli.ListBacktestsRequest.
 * Use `create(ListBacktestsRequestSchema)` to create a new message.
 */
export declare const ListBacktestsRequestSchema: GenMessage<ListBacktestsRequest>;

/**
 * @generated from message foxhunt.tli.ListBacktestsResponse
 */
export declare type ListBacktestsResponse = Message<"foxhunt.tli.ListBacktestsResponse"> & {
  /**
   * @generated from field: repeated foxhunt.tli.BacktestSummary backtests = 1;
   */
  backtests: BacktestSummary[];

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

/**
 * Describes the message foxhunt.tli.ListBacktestsResponse.
 * Use `create(ListBacktestsResponseSchema)` to create a new message.
 */
export declare const ListBacktestsResponseSchema: GenMessage<ListBacktestsResponse>;

/**
 * @generated from message foxhunt.tli.BacktestSummary
 */
export declare type BacktestSummary = Message<"foxhunt.tli.BacktestSummary"> & {
  /**
   * @generated from field: string backtest_id = 1;
   */
  backtestId: string;

  /**
   * @generated from field: string strategy_name = 2;
   */
  strategyName: string;

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

  /**
   * @generated from field: foxhunt.tli.BacktestStatus status = 4;
   */
  status: BacktestStatus;

  /**
   * @generated from field: double total_return = 5;
   */
  totalReturn: number;

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

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

  /**
   * @generated from field: int64 created_at_unix_nanos = 8;
   */
  createdAtUnixNanos: bigint;

  /**
   * @generated from field: int64 start_date_unix_nanos = 9;
   */
  startDateUnixNanos: bigint;

  /**
   * @generated from field: int64 end_date_unix_nanos = 10;
   */
  endDateUnixNanos: bigint;

  /**
   * @generated from field: string description = 11;
   */
  description: string;
};

/**
 * Describes the message foxhunt.tli.BacktestSummary.
 * Use `create(BacktestSummarySchema)` to create a new message.
 */
export declare const BacktestSummarySchema: GenMessage<BacktestSummary>;

/**
 * Backtest progress subscription
 *
 * @generated from message foxhunt.tli.SubscribeBacktestProgressRequest
 */
export declare type SubscribeBacktestProgressRequest = Message<"foxhunt.tli.SubscribeBacktestProgressRequest"> & {
  /**
   * @generated from field: string backtest_id = 1;
   */
  backtestId: string;
};

/**
 * Describes the message foxhunt.tli.SubscribeBacktestProgressRequest.
 * Use `create(SubscribeBacktestProgressRequestSchema)` to create a new message.
 */
export declare const SubscribeBacktestProgressRequestSchema: GenMessage<SubscribeBacktestProgressRequest>;

/**
 * @generated from message foxhunt.tli.BacktestProgressEvent
 */
export declare type BacktestProgressEvent = Message<"foxhunt.tli.BacktestProgressEvent"> & {
  /**
   * @generated from field: string backtest_id = 1;
   */
  backtestId: string;

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

  /**
   * @generated from field: string current_date = 3;
   */
  currentDate: string;

  /**
   * @generated from field: uint64 trades_executed = 4;
   */
  tradesExecuted: bigint;

  /**
   * @generated from field: double current_pnl = 5;
   */
  currentPnl: number;

  /**
   * @generated from field: double current_equity = 6;
   */
  currentEquity: number;

  /**
   * @generated from field: foxhunt.tli.BacktestStatus status = 7;
   */
  status: BacktestStatus;

  /**
   * @generated from field: int64 timestamp_unix_nanos = 8;
   */
  timestampUnixNanos: bigint;
};

/**
 * Describes the message foxhunt.tli.BacktestProgressEvent.
 * Use `create(BacktestProgressEventSchema)` to create a new message.
 */
export declare const BacktestProgressEventSchema: GenMessage<BacktestProgressEvent>;

/**
 * Stop backtest
 *
 * @generated from message foxhunt.tli.StopBacktestRequest
 */
export declare type StopBacktestRequest = Message<"foxhunt.tli.StopBacktestRequest"> & {
  /**
   * @generated from field: string backtest_id = 1;
   */
  backtestId: string;

  /**
   * @generated from field: bool save_partial_results = 2;
   */
  savePartialResults: boolean;
};

/**
 * Describes the message foxhunt.tli.StopBacktestRequest.
 * Use `create(StopBacktestRequestSchema)` to create a new message.
 */
export declare const StopBacktestRequestSchema: GenMessage<StopBacktestRequest>;

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

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

  /**
   * @generated from field: bool results_saved = 3;
   */
  resultsSaved: boolean;
};

/**
 * Describes the message foxhunt.tli.StopBacktestResponse.
 * Use `create(StopBacktestResponseSchema)` to create a new message.
 */
export declare const StopBacktestResponseSchema: GenMessage<StopBacktestResponse>;

/**
 * Submit ML-powered order request
 *
 * @generated from message foxhunt.tli.SubmitMLOrderRequest
 */
export declare type SubmitMLOrderRequest = Message<"foxhunt.tli.SubmitMLOrderRequest"> & {
  /**
   * 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;

  /**
   * Optional model filter: "DQN", "MAMBA2", "PPO", "TFT", or null for ensemble
   *
   * @generated from field: optional string model_filter = 3;
   */
  modelFilter?: string;
};

/**
 * Describes the message foxhunt.tli.SubmitMLOrderRequest.
 * Use `create(SubmitMLOrderRequestSchema)` to create a new message.
 */
export declare const SubmitMLOrderRequestSchema: GenMessage<SubmitMLOrderRequest>;

/**
 * Submit ML-powered order response
 *
 * @generated from message foxhunt.tli.SubmitMLOrderResponse
 */
export declare type SubmitMLOrderResponse = Message<"foxhunt.tli.SubmitMLOrderResponse"> & {
  /**
   * Order ID if executed
   *
   * @generated from field: string order_id = 1;
   */
  orderId: string;

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

  /**
   * "Ensemble" or specific model name
   *
   * @generated from field: string model_used = 3;
   */
  modelUsed: string;

  /**
   * Action taken: BUY, SELL, HOLD
   *
   * @generated from field: string predicted_action = 4;
   */
  predictedAction: string;

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

  /**
   * Order quantity
   *
   * @generated from field: int32 quantity = 6;
   */
  quantity: number;

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

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

/**
 * Describes the message foxhunt.tli.SubmitMLOrderResponse.
 * Use `create(SubmitMLOrderResponseSchema)` to create a new message.
 */
export declare const SubmitMLOrderResponseSchema: GenMessage<SubmitMLOrderResponse>;

/**
 * Get ML predictions request
 *
 * @generated from message foxhunt.tli.GetMLPredictionsRequest
 */
export declare type GetMLPredictionsRequest = Message<"foxhunt.tli.GetMLPredictionsRequest"> & {
  /**
   * Trading symbol to filter by
   *
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * Optional model filter
   *
   * @generated from field: optional string model_filter = 2;
   */
  modelFilter?: string;

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

/**
 * Describes the message foxhunt.tli.GetMLPredictionsRequest.
 * Use `create(GetMLPredictionsRequestSchema)` to create a new message.
 */
export declare const GetMLPredictionsRequestSchema: GenMessage<GetMLPredictionsRequest>;

/**
 * Get ML predictions response
 *
 * @generated from message foxhunt.tli.GetMLPredictionsResponse
 */
export declare type GetMLPredictionsResponse = Message<"foxhunt.tli.GetMLPredictionsResponse"> & {
  /**
   * List of predictions with outcomes
   *
   * @generated from field: repeated foxhunt.tli.MLPrediction predictions = 1;
   */
  predictions: MLPrediction[];
};

/**
 * Describes the message foxhunt.tli.GetMLPredictionsResponse.
 * Use `create(GetMLPredictionsResponseSchema)` to create a new message.
 */
export declare const GetMLPredictionsResponseSchema: GenMessage<GetMLPredictionsResponse>;

/**
 * Single ML prediction with outcome
 *
 * @generated from message foxhunt.tli.MLPrediction
 */
export declare type MLPrediction = Message<"foxhunt.tli.MLPrediction"> & {
  /**
   * Prediction timestamp (ISO 8601)
   *
   * @generated from field: string timestamp = 1;
   */
  timestamp: string;

  /**
   * Model identifier
   *
   * @generated from field: string model_id = 2;
   */
  modelId: string;

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

  /**
   * Predicted action: BUY, SELL, HOLD
   *
   * @generated from field: string predicted_action = 4;
   */
  predictedAction: string;

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

  /**
   * Actual return if outcome known
   *
   * @generated from field: optional double actual_return = 6;
   */
  actualReturn?: number;
};

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

/**
 * Get ML performance request
 *
 * @generated from message foxhunt.tli.GetMLPerformanceRequest
 */
export declare type GetMLPerformanceRequest = Message<"foxhunt.tli.GetMLPerformanceRequest"> & {
  /**
   * Optional model filter
   *
   * @generated from field: optional string model_filter = 1;
   */
  modelFilter?: string;
};

/**
 * Describes the message foxhunt.tli.GetMLPerformanceRequest.
 * Use `create(GetMLPerformanceRequestSchema)` to create a new message.
 */
export declare const GetMLPerformanceRequestSchema: GenMessage<GetMLPerformanceRequest>;

/**
 * Get ML performance response
 *
 * @generated from message foxhunt.tli.GetMLPerformanceResponse
 */
export declare type GetMLPerformanceResponse = Message<"foxhunt.tli.GetMLPerformanceResponse"> & {
  /**
   * Performance metrics per model
   *
   * @generated from field: repeated foxhunt.tli.ModelPerformance models = 1;
   */
  models: ModelPerformance[];

  /**
   * Ensemble confidence threshold
   *
   * @generated from field: double ensemble_threshold = 2;
   */
  ensembleThreshold: number;

  /**
   * Number of active models
   *
   * @generated from field: int32 active_models = 3;
   */
  activeModels: number;

  /**
   * Total number of models
   *
   * @generated from field: int32 total_models = 4;
   */
  totalModels: number;
};

/**
 * Describes the message foxhunt.tli.GetMLPerformanceResponse.
 * Use `create(GetMLPerformanceResponseSchema)` to create a new message.
 */
export declare const GetMLPerformanceResponseSchema: GenMessage<GetMLPerformanceResponse>;

/**
 * Performance metrics for a single model
 *
 * @generated from message foxhunt.tli.ModelPerformance
 */
export declare type ModelPerformance = Message<"foxhunt.tli.ModelPerformance"> & {
  /**
   * Model identifier
   *
   * @generated from field: string model_id = 1;
   */
  modelId: string;

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

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

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

  /**
   * Average return per prediction
   *
   * @generated from field: double avg_return = 5;
   */
  avgReturn: number;

  /**
   * Maximum drawdown
   *
   * @generated from field: double max_drawdown = 6;
   */
  maxDrawdown: number;
};

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

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

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

/**
 * Response containing current regime state
 *
 * @generated from message foxhunt.tli.GetRegimeStateResponse
 */
export declare type GetRegimeStateResponse = Message<"foxhunt.tli.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
   *
   * @generated from field: int64 updated_at_unix_nanos = 9;
   */
  updatedAtUnixNanos: bigint;
};

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

/**
 * Request to get regime transition history
 *
 * @generated from message foxhunt.tli.GetRegimeTransitionsRequest
 */
export declare type GetRegimeTransitionsRequest = Message<"foxhunt.tli.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 foxhunt.tli.GetRegimeTransitionsRequest.
 * Use `create(GetRegimeTransitionsRequestSchema)` to create a new message.
 */
export declare const GetRegimeTransitionsRequestSchema: GenMessage<GetRegimeTransitionsRequest>;

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

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

/**
 * Single regime transition record
 *
 * @generated from message foxhunt.tli.RegimeTransition
 */
export declare type RegimeTransition = Message<"foxhunt.tli.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
   *
   * @generated from field: int64 timestamp_unix_nanos = 5;
   */
  timestampUnixNanos: bigint;
};

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

/**
 * Order direction for trading operations
 *
 * @generated from enum foxhunt.tli.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 foxhunt.tli.OrderSide.
 */
export declare const OrderSideSchema: GenEnum<OrderSide>;

/**
 * Order execution type
 *
 * @generated from enum foxhunt.tli.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 foxhunt.tli.OrderType.
 */
export declare const OrderTypeSchema: GenEnum<OrderType>;

/**
 * Current lifecycle status of orders
 *
 * @generated from enum foxhunt.tli.OrderStatus
 */
export enum OrderStatus {
  /**
   * Default/unknown status
   *
   * @generated from enum value: ORDER_STATUS_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Order created and submitted
   *
   * @generated from enum value: ORDER_STATUS_NEW = 1;
   */
  NEW = 1,

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

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

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

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

  /**
   * Cancellation request pending
   *
   * @generated from enum value: ORDER_STATUS_PENDING_CANCEL = 6;
   */
  PENDING_CANCEL = 6,
}

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

/**
 * @generated from enum foxhunt.tli.MarketDataType
 */
export enum MarketDataType {
  /**
   * @generated from enum value: MARKET_DATA_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: MARKET_DATA_TYPE_TICKS = 1;
   */
  TICKS = 1,

  /**
   * @generated from enum value: MARKET_DATA_TYPE_QUOTES = 2;
   */
  QUOTES = 2,

  /**
   * @generated from enum value: MARKET_DATA_TYPE_TRADES = 3;
   */
  TRADES = 3,

  /**
   * @generated from enum value: MARKET_DATA_TYPE_BARS = 4;
   */
  BARS = 4,
}

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

/**
 * @generated from enum foxhunt.tli.SystemStatus
 */
export enum SystemStatus {
  /**
   * @generated from enum value: SYSTEM_STATUS_UNKNOWN = 0;
   */
  UNKNOWN = 0,

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

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

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

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

/**
 * Describes the enum foxhunt.tli.SystemStatus.
 */
export declare const SystemStatusSchema: GenEnum<SystemStatus>;

/**
 * Additional enums for risk and backtesting
 *
 * @generated from enum foxhunt.tli.VaRMethodology
 */
export enum VaRMethodology {
  /**
   * @generated from enum value: VAR_METHODOLOGY_UNSPECIFIED = 0;
   */
  VAR_METHODOLOGY_UNSPECIFIED = 0,

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

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

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

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

/**
 * Describes the enum foxhunt.tli.VaRMethodology.
 */
export declare const VaRMethodologySchema: GenEnum<VaRMethodology>;

/**
 * @generated from enum foxhunt.tli.RiskLevel
 */
export enum RiskLevel {
  /**
   * @generated from enum value: RISK_LEVEL_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: RISK_LEVEL_LOW = 1;
   */
  LOW = 1,

  /**
   * @generated from enum value: RISK_LEVEL_MEDIUM = 2;
   */
  MEDIUM = 2,

  /**
   * @generated from enum value: RISK_LEVEL_HIGH = 3;
   */
  HIGH = 3,

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

/**
 * Describes the enum foxhunt.tli.RiskLevel.
 */
export declare const RiskLevelSchema: GenEnum<RiskLevel>;

/**
 * @generated from enum foxhunt.tli.ViolationType
 */
export enum ViolationType {
  /**
   * @generated from enum value: VIOLATION_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: VIOLATION_TYPE_POSITION_LIMIT = 1;
   */
  POSITION_LIMIT = 1,

  /**
   * @generated from enum value: VIOLATION_TYPE_CONCENTRATION = 2;
   */
  CONCENTRATION = 2,

  /**
   * @generated from enum value: VIOLATION_TYPE_VAR_LIMIT = 3;
   */
  VAR_LIMIT = 3,

  /**
   * @generated from enum value: VIOLATION_TYPE_MARGIN = 4;
   */
  MARGIN = 4,

  /**
   * @generated from enum value: VIOLATION_TYPE_DRAWDOWN = 5;
   */
  DRAWDOWN = 5,
}

/**
 * Describes the enum foxhunt.tli.ViolationType.
 */
export declare const ViolationTypeSchema: GenEnum<ViolationType>;

/**
 * @generated from enum foxhunt.tli.RiskSeverity
 */
export enum RiskSeverity {
  /**
   * @generated from enum value: RISK_SEVERITY_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: RISK_SEVERITY_INFO = 1;
   */
  INFO = 1,

  /**
   * @generated from enum value: RISK_SEVERITY_WARNING = 2;
   */
  WARNING = 2,

  /**
   * @generated from enum value: RISK_SEVERITY_CRITICAL = 3;
   */
  CRITICAL = 3,

  /**
   * @generated from enum value: RISK_SEVERITY_EMERGENCY = 4;
   */
  EMERGENCY = 4,
}

/**
 * Describes the enum foxhunt.tli.RiskSeverity.
 */
export declare const RiskSeveritySchema: GenEnum<RiskSeverity>;

/**
 * @generated from enum foxhunt.tli.EmergencyStopType
 */
export enum EmergencyStopType {
  /**
   * @generated from enum value: EMERGENCY_STOP_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: EMERGENCY_STOP_TYPE_CANCEL_ORDERS = 1;
   */
  CANCEL_ORDERS = 1,

  /**
   * @generated from enum value: EMERGENCY_STOP_TYPE_CLOSE_POSITIONS = 2;
   */
  CLOSE_POSITIONS = 2,

  /**
   * @generated from enum value: EMERGENCY_STOP_TYPE_FULL_SHUTDOWN = 3;
   */
  FULL_SHUTDOWN = 3,
}

/**
 * Describes the enum foxhunt.tli.EmergencyStopType.
 */
export declare const EmergencyStopTypeSchema: GenEnum<EmergencyStopType>;

/**
 * @generated from enum foxhunt.tli.BacktestStatus
 */
export enum BacktestStatus {
  /**
   * @generated from enum value: BACKTEST_STATUS_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: BACKTEST_STATUS_QUEUED = 1;
   */
  QUEUED = 1,

  /**
   * @generated from enum value: BACKTEST_STATUS_RUNNING = 2;
   */
  RUNNING = 2,

  /**
   * @generated from enum value: BACKTEST_STATUS_COMPLETED = 3;
   */
  COMPLETED = 3,

  /**
   * @generated from enum value: BACKTEST_STATUS_FAILED = 4;
   */
  FAILED = 4,

  /**
   * @generated from enum value: BACKTEST_STATUS_CANCELLED = 5;
   */
  CANCELLED = 5,

  /**
   * @generated from enum value: BACKTEST_STATUS_PAUSED = 6;
   */
  PAUSED = 6,
}

/**
 * Describes the enum foxhunt.tli.BacktestStatus.
 */
export declare const BacktestStatusSchema: GenEnum<BacktestStatus>;

/**
 * TLI Trading Service provides a unified client interface for all HFT trading operations.
 * This service integrates trading, risk management, monitoring, and configuration capabilities
 * into a single comprehensive API for the Terminal Line Interface (TLI) client application.
 *
 * @generated from service foxhunt.tli.TradingService
 */
export declare const TradingService: GenService<{
  /**
   * Core Trading Operations
   * Submit a new trading order with validation
   *
   * @generated from rpc foxhunt.tli.TradingService.SubmitOrder
   */
  submitOrder: {
    methodKind: "unary";
    input: typeof SubmitOrderRequestSchema;
    output: typeof SubmitOrderResponseSchema;
  },
  /**
   * Cancel an existing order by ID
   *
   * @generated from rpc foxhunt.tli.TradingService.CancelOrder
   */
  cancelOrder: {
    methodKind: "unary";
    input: typeof CancelOrderRequestSchema;
    output: typeof CancelOrderResponseSchema;
  },
  /**
   * Get current status of a specific order
   *
   * @generated from rpc foxhunt.tli.TradingService.GetOrderStatus
   */
  getOrderStatus: {
    methodKind: "unary";
    input: typeof GetOrderStatusRequestSchema;
    output: typeof GetOrderStatusResponseSchema;
  },
  /**
   * Get account information and balances
   *
   * @generated from rpc foxhunt.tli.TradingService.GetAccountInfo
   */
  getAccountInfo: {
    methodKind: "unary";
    input: typeof GetAccountInfoRequestSchema;
    output: typeof GetAccountInfoResponseSchema;
  },
  /**
   * Get current portfolio positions
   *
   * @generated from rpc foxhunt.tli.TradingService.GetPositions
   */
  getPositions: {
    methodKind: "unary";
    input: typeof GetPositionsRequestSchema;
    output: typeof GetPositionsResponseSchema;
  },
  /**
   * Subscribe to real-time market data feeds
   *
   * @generated from rpc foxhunt.tli.TradingService.SubscribeMarketData
   */
  subscribeMarketData: {
    methodKind: "server_streaming";
    input: typeof SubscribeMarketDataRequestSchema;
    output: typeof MarketDataEventSchema;
  },
  /**
   * Subscribe to real-time order status updates
   *
   * @generated from rpc foxhunt.tli.TradingService.SubscribeOrderUpdates
   */
  subscribeOrderUpdates: {
    methodKind: "server_streaming";
    input: typeof SubscribeOrderUpdatesRequestSchema;
    output: typeof OrderUpdateEventSchema;
  },
  /**
   * Integrated Risk Management
   * Calculate portfolio Value at Risk (VaR)
   *
   * @generated from rpc foxhunt.tli.TradingService.GetVaR
   */
  getVaR: {
    methodKind: "unary";
    input: typeof GetVaRRequestSchema;
    output: typeof GetVaRResponseSchema;
  },
  /**
   * Analyze position-level risk exposure
   *
   * @generated from rpc foxhunt.tli.TradingService.GetPositionRisk
   */
  getPositionRisk: {
    methodKind: "unary";
    input: typeof GetPositionRiskRequestSchema;
    output: typeof GetPositionRiskResponseSchema;
  },
  /**
   * Validate order against risk limits before submission
   *
   * @generated from rpc foxhunt.tli.TradingService.ValidateOrder
   */
  validateOrder: {
    methodKind: "unary";
    input: typeof ValidateOrderRequestSchema;
    output: typeof ValidateOrderResponseSchema;
  },
  /**
   * Get comprehensive portfolio risk metrics
   *
   * @generated from rpc foxhunt.tli.TradingService.GetRiskMetrics
   */
  getRiskMetrics: {
    methodKind: "unary";
    input: typeof GetRiskMetricsRequestSchema;
    output: typeof GetRiskMetricsResponseSchema;
  },
  /**
   * Subscribe to real-time risk alerts and violations
   *
   * @generated from rpc foxhunt.tli.TradingService.SubscribeRiskAlerts
   */
  subscribeRiskAlerts: {
    methodKind: "server_streaming";
    input: typeof SubscribeRiskAlertsRequestSchema;
    output: typeof RiskAlertEventSchema;
  },
  /**
   * Emergency stop with immediate trading halt
   *
   * @generated from rpc foxhunt.tli.TradingService.EmergencyStop
   */
  emergencyStop: {
    methodKind: "unary";
    input: typeof EmergencyStopRequestSchema;
    output: typeof EmergencyStopResponseSchema;
  },
  /**
   * Integrated System Monitoring
   * Get system performance metrics
   *
   * @generated from rpc foxhunt.tli.TradingService.GetMetrics
   */
  getMetrics: {
    methodKind: "unary";
    input: typeof GetMetricsRequestSchema;
    output: typeof GetMetricsResponseSchema;
  },
  /**
   * Get latency performance statistics
   *
   * @generated from rpc foxhunt.tli.TradingService.GetLatency
   */
  getLatency: {
    methodKind: "unary";
    input: typeof GetLatencyRequestSchema;
    output: typeof GetLatencyResponseSchema;
  },
  /**
   * Get throughput and capacity metrics
   *
   * @generated from rpc foxhunt.tli.TradingService.GetThroughput
   */
  getThroughput: {
    methodKind: "unary";
    input: typeof GetThroughputRequestSchema;
    output: typeof GetThroughputResponseSchema;
  },
  /**
   * Subscribe to real-time performance metrics
   *
   * @generated from rpc foxhunt.tli.TradingService.SubscribeMetrics
   */
  subscribeMetrics: {
    methodKind: "server_streaming";
    input: typeof SubscribeMetricsRequestSchema;
    output: typeof MetricsEventSchema;
  },
  /**
   * Integrated Configuration Management
   * Update system parameters and settings
   *
   * @generated from rpc foxhunt.tli.TradingService.UpdateParameters
   */
  updateParameters: {
    methodKind: "unary";
    input: typeof UpdateParametersRequestSchema;
    output: typeof UpdateParametersResponseSchema;
  },
  /**
   * Get current configuration values
   *
   * @generated from rpc foxhunt.tli.TradingService.GetConfig
   */
  getConfig: {
    methodKind: "unary";
    input: typeof GetConfigRequestSchema;
    output: typeof GetConfigResponseSchema;
  },
  /**
   * Subscribe to configuration changes
   *
   * @generated from rpc foxhunt.tli.TradingService.SubscribeConfig
   */
  subscribeConfig: {
    methodKind: "server_streaming";
    input: typeof SubscribeConfigRequestSchema;
    output: typeof ConfigEventSchema;
  },
  /**
   * Integrated System Health Monitoring
   * Get overall system health and service status
   *
   * @generated from rpc foxhunt.tli.TradingService.GetSystemStatus
   */
  getSystemStatus: {
    methodKind: "unary";
    input: typeof GetSystemStatusRequestSchema;
    output: typeof GetSystemStatusResponseSchema;
  },
  /**
   * Subscribe to system status changes and alerts
   *
   * @generated from rpc foxhunt.tli.TradingService.SubscribeSystemStatus
   */
  subscribeSystemStatus: {
    methodKind: "server_streaming";
    input: typeof SubscribeSystemStatusRequestSchema;
    output: typeof SystemStatusEventSchema;
  },
  /**
   * ML Trading Operations
   * Submit ML-powered trading order with ensemble predictions
   *
   * @generated from rpc foxhunt.tli.TradingService.SubmitMLOrder
   */
  submitMLOrder: {
    methodKind: "unary";
    input: typeof SubmitMLOrderRequestSchema;
    output: typeof SubmitMLOrderResponseSchema;
  },
  /**
   * Get ML prediction history with outcomes
   *
   * @generated from rpc foxhunt.tli.TradingService.GetMLPredictions
   */
  getMLPredictions: {
    methodKind: "unary";
    input: typeof GetMLPredictionsRequestSchema;
    output: typeof GetMLPredictionsResponseSchema;
  },
  /**
   * Get ML model performance metrics
   *
   * @generated from rpc foxhunt.tli.TradingService.GetMLPerformance
   */
  getMLPerformance: {
    methodKind: "unary";
    input: typeof GetMLPerformanceRequestSchema;
    output: typeof GetMLPerformanceResponseSchema;
  },
  /**
   * Wave D: Regime Detection Operations
   * Get current regime state for a symbol
   *
   * @generated from rpc foxhunt.tli.TradingService.GetRegimeState
   */
  getRegimeState: {
    methodKind: "unary";
    input: typeof GetRegimeStateRequestSchema;
    output: typeof GetRegimeStateResponseSchema;
  },
  /**
   * Get regime transition history for a symbol
   *
   * @generated from rpc foxhunt.tli.TradingService.GetRegimeTransitions
   */
  getRegimeTransitions: {
    methodKind: "unary";
    input: typeof GetRegimeTransitionsRequestSchema;
    output: typeof GetRegimeTransitionsResponseSchema;
  },
}>;

/**
 * Backtesting Service provides comprehensive strategy backtesting capabilities for the TLI.
 * This service allows users to test trading strategies against historical data with detailed
 * performance analytics, risk metrics, and trade-by-trade analysis.
 *
 * @generated from service foxhunt.tli.BacktestingService
 */
export declare const BacktestingService: GenService<{
  /**
   * Backtest Execution Management
   * Start a new strategy backtest with historical data
   *
   * @generated from rpc foxhunt.tli.BacktestingService.StartBacktest
   */
  startBacktest: {
    methodKind: "unary";
    input: typeof StartBacktestRequestSchema;
    output: typeof StartBacktestResponseSchema;
  },
  /**
   * Get current status of a running backtest
   *
   * @generated from rpc foxhunt.tli.BacktestingService.GetBacktestStatus
   */
  getBacktestStatus: {
    methodKind: "unary";
    input: typeof GetBacktestStatusRequestSchema;
    output: typeof GetBacktestStatusResponseSchema;
  },
  /**
   * Get comprehensive backtest results and analytics
   *
   * @generated from rpc foxhunt.tli.BacktestingService.GetBacktestResults
   */
  getBacktestResults: {
    methodKind: "unary";
    input: typeof GetBacktestResultsRequestSchema;
    output: typeof GetBacktestResultsResponseSchema;
  },
  /**
   * List historical backtest runs with filtering
   *
   * @generated from rpc foxhunt.tli.BacktestingService.ListBacktests
   */
  listBacktests: {
    methodKind: "unary";
    input: typeof ListBacktestsRequestSchema;
    output: typeof ListBacktestsResponseSchema;
  },
  /**
   * Subscribe to real-time backtest progress updates
   *
   * @generated from rpc foxhunt.tli.BacktestingService.SubscribeBacktestProgress
   */
  subscribeBacktestProgress: {
    methodKind: "server_streaming";
    input: typeof SubscribeBacktestProgressRequestSchema;
    output: typeof BacktestProgressEventSchema;
  },
  /**
   * Stop a running backtest and optionally save partial results
   *
   * @generated from rpc foxhunt.tli.BacktestingService.StopBacktest
   */
  stopBacktest: {
    methodKind: "unary";
    input: typeof StopBacktestRequestSchema;
    output: typeof StopBacktestResponseSchema;
  },
}>;

