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

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

/**
 * Describes the file trading_agent.proto.
 */
export declare const file_trading_agent: GenFile;

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

/**
 * Describes the message trading_agent.StreamAgentStatusRequest.
 * Use `create(StreamAgentStatusRequestSchema)` to create a new message.
 */
export declare const StreamAgentStatusRequestSchema: GenMessage<StreamAgentStatusRequest>;

/**
 * @generated from message trading_agent.SelectUniverseRequest
 */
export declare type SelectUniverseRequest = Message<"trading_agent.SelectUniverseRequest"> & {
  /**
   * Selection criteria
   *
   * @generated from field: trading_agent.UniverseCriteria criteria = 1;
   */
  criteria?: UniverseCriteria;

  /**
   * Maximum instruments in universe
   *
   * @generated from field: optional uint32 max_instruments = 2;
   */
  maxInstruments?: number;

  /**
   * Force recalculation
   *
   * @generated from field: bool force_refresh = 3;
   */
  forceRefresh: boolean;
};

/**
 * Describes the message trading_agent.SelectUniverseRequest.
 * Use `create(SelectUniverseRequestSchema)` to create a new message.
 */
export declare const SelectUniverseRequestSchema: GenMessage<SelectUniverseRequest>;

/**
 * @generated from message trading_agent.SelectUniverseResponse
 */
export declare type SelectUniverseResponse = Message<"trading_agent.SelectUniverseResponse"> & {
  /**
   * Selected instruments
   *
   * @generated from field: repeated trading_agent.Instrument instruments = 1;
   */
  instruments: Instrument[];

  /**
   * Universe quality metrics
   *
   * @generated from field: trading_agent.UniverseMetrics metrics = 2;
   */
  metrics?: UniverseMetrics;

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

  /**
   * Unique universe identifier
   *
   * @generated from field: string universe_id = 4;
   */
  universeId: string;
};

/**
 * Describes the message trading_agent.SelectUniverseResponse.
 * Use `create(SelectUniverseResponseSchema)` to create a new message.
 */
export declare const SelectUniverseResponseSchema: GenMessage<SelectUniverseResponse>;

/**
 * @generated from message trading_agent.GetUniverseRequest
 */
export declare type GetUniverseRequest = Message<"trading_agent.GetUniverseRequest"> & {
  /**
   * Get specific universe, or current if not specified
   *
   * @generated from field: optional string universe_id = 1;
   */
  universeId?: string;
};

/**
 * Describes the message trading_agent.GetUniverseRequest.
 * Use `create(GetUniverseRequestSchema)` to create a new message.
 */
export declare const GetUniverseRequestSchema: GenMessage<GetUniverseRequest>;

/**
 * @generated from message trading_agent.GetUniverseResponse
 */
export declare type GetUniverseResponse = Message<"trading_agent.GetUniverseResponse"> & {
  /**
   * @generated from field: string universe_id = 1;
   */
  universeId: string;

  /**
   * @generated from field: repeated trading_agent.Instrument instruments = 2;
   */
  instruments: Instrument[];

  /**
   * @generated from field: trading_agent.UniverseCriteria criteria = 3;
   */
  criteria?: UniverseCriteria;

  /**
   * @generated from field: trading_agent.UniverseMetrics metrics = 4;
   */
  metrics?: UniverseMetrics;

  /**
   * Unix timestamp (nanoseconds)
   *
   * @generated from field: int64 created_at = 5;
   */
  createdAt: bigint;

  /**
   * @generated from field: int64 updated_at = 6;
   */
  updatedAt: bigint;
};

/**
 * Describes the message trading_agent.GetUniverseResponse.
 * Use `create(GetUniverseResponseSchema)` to create a new message.
 */
export declare const GetUniverseResponseSchema: GenMessage<GetUniverseResponse>;

/**
 * @generated from message trading_agent.UpdateUniverseCriteriaRequest
 */
export declare type UpdateUniverseCriteriaRequest = Message<"trading_agent.UpdateUniverseCriteriaRequest"> & {
  /**
   * @generated from field: trading_agent.UniverseCriteria criteria = 1;
   */
  criteria?: UniverseCriteria;
};

/**
 * Describes the message trading_agent.UpdateUniverseCriteriaRequest.
 * Use `create(UpdateUniverseCriteriaRequestSchema)` to create a new message.
 */
export declare const UpdateUniverseCriteriaRequestSchema: GenMessage<UpdateUniverseCriteriaRequest>;

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

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

  /**
   * New universe ID after update
   *
   * @generated from field: string universe_id = 3;
   */
  universeId: string;
};

/**
 * Describes the message trading_agent.UpdateUniverseCriteriaResponse.
 * Use `create(UpdateUniverseCriteriaResponseSchema)` to create a new message.
 */
export declare const UpdateUniverseCriteriaResponseSchema: GenMessage<UpdateUniverseCriteriaResponse>;

/**
 * @generated from message trading_agent.SelectAssetsRequest
 */
export declare type SelectAssetsRequest = Message<"trading_agent.SelectAssetsRequest"> & {
  /**
   * Universe to select from
   *
   * @generated from field: string universe_id = 1;
   */
  universeId: string;

  /**
   * Selection criteria
   *
   * @generated from field: trading_agent.AssetSelectionCriteria criteria = 2;
   */
  criteria?: AssetSelectionCriteria;

  /**
   * Maximum assets to select
   *
   * @generated from field: uint32 max_assets = 3;
   */
  maxAssets: number;
};

/**
 * Describes the message trading_agent.SelectAssetsRequest.
 * Use `create(SelectAssetsRequestSchema)` to create a new message.
 */
export declare const SelectAssetsRequestSchema: GenMessage<SelectAssetsRequest>;

/**
 * @generated from message trading_agent.SelectAssetsResponse
 */
export declare type SelectAssetsResponse = Message<"trading_agent.SelectAssetsResponse"> & {
  /**
   * Selected assets with scores
   *
   * @generated from field: repeated trading_agent.AssetScore assets = 1;
   */
  assets: AssetScore[];

  /**
   * Selection quality metrics
   *
   * @generated from field: trading_agent.SelectionMetrics metrics = 2;
   */
  metrics?: SelectionMetrics;

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

/**
 * Describes the message trading_agent.SelectAssetsResponse.
 * Use `create(SelectAssetsResponseSchema)` to create a new message.
 */
export declare const SelectAssetsResponseSchema: GenMessage<SelectAssetsResponse>;

/**
 * @generated from message trading_agent.GetSelectedAssetsRequest
 */
export declare type GetSelectedAssetsRequest = Message<"trading_agent.GetSelectedAssetsRequest"> & {
  /**
   * @generated from field: optional string universe_id = 1;
   */
  universeId?: string;
};

/**
 * Describes the message trading_agent.GetSelectedAssetsRequest.
 * Use `create(GetSelectedAssetsRequestSchema)` to create a new message.
 */
export declare const GetSelectedAssetsRequestSchema: GenMessage<GetSelectedAssetsRequest>;

/**
 * @generated from message trading_agent.GetSelectedAssetsResponse
 */
export declare type GetSelectedAssetsResponse = Message<"trading_agent.GetSelectedAssetsResponse"> & {
  /**
   * @generated from field: repeated trading_agent.AssetScore assets = 1;
   */
  assets: AssetScore[];

  /**
   * @generated from field: trading_agent.SelectionMetrics metrics = 2;
   */
  metrics?: SelectionMetrics;

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

/**
 * Describes the message trading_agent.GetSelectedAssetsResponse.
 * Use `create(GetSelectedAssetsResponseSchema)` to create a new message.
 */
export declare const GetSelectedAssetsResponseSchema: GenMessage<GetSelectedAssetsResponse>;

/**
 * @generated from message trading_agent.AllocatePortfolioRequest
 */
export declare type AllocatePortfolioRequest = Message<"trading_agent.AllocatePortfolioRequest"> & {
  /**
   * Assets to allocate across
   *
   * @generated from field: repeated trading_agent.AssetScore assets = 1;
   */
  assets: AssetScore[];

  /**
   * Allocation algorithm
   *
   * @generated from field: trading_agent.AllocationStrategy strategy = 2;
   */
  strategy?: AllocationStrategy;

  /**
   * Risk limits
   *
   * @generated from field: trading_agent.RiskConstraints risk_constraints = 3;
   */
  riskConstraints?: RiskConstraints;

  /**
   * Total capital to allocate
   *
   * @generated from field: double total_capital = 4;
   */
  totalCapital: number;
};

/**
 * Describes the message trading_agent.AllocatePortfolioRequest.
 * Use `create(AllocatePortfolioRequestSchema)` to create a new message.
 */
export declare const AllocatePortfolioRequestSchema: GenMessage<AllocatePortfolioRequest>;

/**
 * @generated from message trading_agent.AllocatePortfolioResponse
 */
export declare type AllocatePortfolioResponse = Message<"trading_agent.AllocatePortfolioResponse"> & {
  /**
   * Allocation per asset
   *
   * @generated from field: repeated trading_agent.AssetAllocation allocations = 1;
   */
  allocations: AssetAllocation[];

  /**
   * Allocation quality metrics
   *
   * @generated from field: trading_agent.AllocationMetrics metrics = 2;
   */
  metrics?: AllocationMetrics;

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

  /**
   * @generated from field: string allocation_id = 4;
   */
  allocationId: string;
};

/**
 * Describes the message trading_agent.AllocatePortfolioResponse.
 * Use `create(AllocatePortfolioResponseSchema)` to create a new message.
 */
export declare const AllocatePortfolioResponseSchema: GenMessage<AllocatePortfolioResponse>;

/**
 * @generated from message trading_agent.GetAllocationRequest
 */
export declare type GetAllocationRequest = Message<"trading_agent.GetAllocationRequest"> & {
  /**
   * Get specific allocation, or current if not specified
   *
   * @generated from field: optional string allocation_id = 1;
   */
  allocationId?: string;
};

/**
 * Describes the message trading_agent.GetAllocationRequest.
 * Use `create(GetAllocationRequestSchema)` to create a new message.
 */
export declare const GetAllocationRequestSchema: GenMessage<GetAllocationRequest>;

/**
 * @generated from message trading_agent.GetAllocationResponse
 */
export declare type GetAllocationResponse = Message<"trading_agent.GetAllocationResponse"> & {
  /**
   * @generated from field: string allocation_id = 1;
   */
  allocationId: string;

  /**
   * @generated from field: repeated trading_agent.AssetAllocation allocations = 2;
   */
  allocations: AssetAllocation[];

  /**
   * @generated from field: trading_agent.AllocationMetrics metrics = 3;
   */
  metrics?: AllocationMetrics;

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

  /**
   * @generated from field: double total_capital = 5;
   */
  totalCapital: number;
};

/**
 * Describes the message trading_agent.GetAllocationResponse.
 * Use `create(GetAllocationResponseSchema)` to create a new message.
 */
export declare const GetAllocationResponseSchema: GenMessage<GetAllocationResponse>;

/**
 * @generated from message trading_agent.RebalancePortfolioRequest
 */
export declare type RebalancePortfolioRequest = Message<"trading_agent.RebalancePortfolioRequest"> & {
  /**
   * Target allocation
   *
   * @generated from field: string allocation_id = 1;
   */
  allocationId: string;

  /**
   * Min deviation to trigger rebalance (%)
   *
   * @generated from field: double rebalance_threshold = 2;
   */
  rebalanceThreshold: number;

  /**
   * Force rebalance regardless of threshold
   *
   * @generated from field: bool force_rebalance = 3;
   */
  forceRebalance: boolean;
};

/**
 * Describes the message trading_agent.RebalancePortfolioRequest.
 * Use `create(RebalancePortfolioRequestSchema)` to create a new message.
 */
export declare const RebalancePortfolioRequestSchema: GenMessage<RebalancePortfolioRequest>;

/**
 * @generated from message trading_agent.RebalancePortfolioResponse
 */
export declare type RebalancePortfolioResponse = Message<"trading_agent.RebalancePortfolioResponse"> & {
  /**
   * Required rebalancing actions
   *
   * @generated from field: repeated trading_agent.RebalanceAction actions = 1;
   */
  actions: RebalanceAction[];

  /**
   * @generated from field: trading_agent.RebalanceMetrics metrics = 2;
   */
  metrics?: RebalanceMetrics;

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

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

/**
 * Describes the message trading_agent.RebalancePortfolioResponse.
 * Use `create(RebalancePortfolioResponseSchema)` to create a new message.
 */
export declare const RebalancePortfolioResponseSchema: GenMessage<RebalancePortfolioResponse>;

/**
 * @generated from message trading_agent.GenerateOrdersRequest
 */
export declare type GenerateOrdersRequest = Message<"trading_agent.GenerateOrdersRequest"> & {
  /**
   * Target allocation
   *
   * @generated from field: string allocation_id = 1;
   */
  allocationId: string;

  /**
   * ML predictions for timing
   *
   * @generated from field: repeated trading_agent.MLSignal ml_signals = 2;
   */
  mlSignals: MLSignal[];

  /**
   * Order generation algorithm
   *
   * @generated from field: trading_agent.OrderGenerationStrategy strategy = 3;
   */
  strategy?: OrderGenerationStrategy;
};

/**
 * Describes the message trading_agent.GenerateOrdersRequest.
 * Use `create(GenerateOrdersRequestSchema)` to create a new message.
 */
export declare const GenerateOrdersRequestSchema: GenMessage<GenerateOrdersRequest>;

/**
 * @generated from message trading_agent.GenerateOrdersResponse
 */
export declare type GenerateOrdersResponse = Message<"trading_agent.GenerateOrdersResponse"> & {
  /**
   * Generated order instructions
   *
   * @generated from field: repeated trading_agent.GeneratedOrder orders = 1;
   */
  orders: GeneratedOrder[];

  /**
   * @generated from field: trading_agent.OrderGenerationMetrics metrics = 2;
   */
  metrics?: OrderGenerationMetrics;

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

  /**
   * @generated from field: string order_batch_id = 4;
   */
  orderBatchId: string;
};

/**
 * Describes the message trading_agent.GenerateOrdersResponse.
 * Use `create(GenerateOrdersResponseSchema)` to create a new message.
 */
export declare const GenerateOrdersResponseSchema: GenMessage<GenerateOrdersResponse>;

/**
 * @generated from message trading_agent.SubmitAgentOrdersRequest
 */
export declare type SubmitAgentOrdersRequest = Message<"trading_agent.SubmitAgentOrdersRequest"> & {
  /**
   * Batch ID from GenerateOrders
   *
   * @generated from field: string order_batch_id = 1;
   */
  orderBatchId: string;

  /**
   * Orders to submit
   *
   * @generated from field: repeated trading_agent.GeneratedOrder orders = 2;
   */
  orders: GeneratedOrder[];

  /**
   * Test without actual submission
   *
   * @generated from field: bool dry_run = 3;
   */
  dryRun: boolean;
};

/**
 * Describes the message trading_agent.SubmitAgentOrdersRequest.
 * Use `create(SubmitAgentOrdersRequestSchema)` to create a new message.
 */
export declare const SubmitAgentOrdersRequestSchema: GenMessage<SubmitAgentOrdersRequest>;

/**
 * @generated from message trading_agent.SubmitAgentOrdersResponse
 */
export declare type SubmitAgentOrdersResponse = Message<"trading_agent.SubmitAgentOrdersResponse"> & {
  /**
   * Submission results per order
   *
   * @generated from field: repeated trading_agent.OrderSubmissionResult results = 1;
   */
  results: OrderSubmissionResult[];

  /**
   * @generated from field: trading_agent.OrderSubmissionMetrics metrics = 2;
   */
  metrics?: OrderSubmissionMetrics;

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

/**
 * Describes the message trading_agent.SubmitAgentOrdersResponse.
 * Use `create(SubmitAgentOrdersResponseSchema)` to create a new message.
 */
export declare const SubmitAgentOrdersResponseSchema: GenMessage<SubmitAgentOrdersResponse>;

/**
 * @generated from message trading_agent.RegisterStrategyRequest
 */
export declare type RegisterStrategyRequest = Message<"trading_agent.RegisterStrategyRequest"> & {
  /**
   * Unique strategy name
   *
   * @generated from field: string strategy_name = 1;
   */
  strategyName: string;

  /**
   * Strategy category
   *
   * @generated from field: trading_agent.StrategyType strategy_type = 2;
   */
  strategyType: StrategyType;

  /**
   * Strategy configuration
   *
   * @generated from field: trading_agent.StrategyConfig config = 3;
   */
  config?: StrategyConfig;

  /**
   * Enable immediately after registration
   *
   * @generated from field: bool auto_enable = 4;
   */
  autoEnable: boolean;
};

/**
 * Describes the message trading_agent.RegisterStrategyRequest.
 * Use `create(RegisterStrategyRequestSchema)` to create a new message.
 */
export declare const RegisterStrategyRequestSchema: GenMessage<RegisterStrategyRequest>;

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

  /**
   * @generated from field: string strategy_id = 2;
   */
  strategyId: string;

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

/**
 * Describes the message trading_agent.RegisterStrategyResponse.
 * Use `create(RegisterStrategyResponseSchema)` to create a new message.
 */
export declare const RegisterStrategyResponseSchema: GenMessage<RegisterStrategyResponse>;

/**
 * @generated from message trading_agent.ListStrategiesRequest
 */
export declare type ListStrategiesRequest = Message<"trading_agent.ListStrategiesRequest"> & {
  /**
   * Filter by status
   *
   * @generated from field: optional trading_agent.StrategyStatus status_filter = 1;
   */
  statusFilter?: StrategyStatus;
};

/**
 * Describes the message trading_agent.ListStrategiesRequest.
 * Use `create(ListStrategiesRequestSchema)` to create a new message.
 */
export declare const ListStrategiesRequestSchema: GenMessage<ListStrategiesRequest>;

/**
 * @generated from message trading_agent.ListStrategiesResponse
 */
export declare type ListStrategiesResponse = Message<"trading_agent.ListStrategiesResponse"> & {
  /**
   * @generated from field: repeated trading_agent.Strategy strategies = 1;
   */
  strategies: Strategy[];
};

/**
 * Describes the message trading_agent.ListStrategiesResponse.
 * Use `create(ListStrategiesResponseSchema)` to create a new message.
 */
export declare const ListStrategiesResponseSchema: GenMessage<ListStrategiesResponse>;

/**
 * @generated from message trading_agent.UpdateStrategyStatusRequest
 */
export declare type UpdateStrategyStatusRequest = Message<"trading_agent.UpdateStrategyStatusRequest"> & {
  /**
   * @generated from field: string strategy_id = 1;
   */
  strategyId: string;

  /**
   * @generated from field: trading_agent.StrategyStatus new_status = 2;
   */
  newStatus: StrategyStatus;

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

/**
 * Describes the message trading_agent.UpdateStrategyStatusRequest.
 * Use `create(UpdateStrategyStatusRequestSchema)` to create a new message.
 */
export declare const UpdateStrategyStatusRequestSchema: GenMessage<UpdateStrategyStatusRequest>;

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

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

  /**
   * @generated from field: trading_agent.Strategy updated_strategy = 3;
   */
  updatedStrategy?: Strategy;
};

/**
 * Describes the message trading_agent.UpdateStrategyStatusResponse.
 * Use `create(UpdateStrategyStatusResponseSchema)` to create a new message.
 */
export declare const UpdateStrategyStatusResponseSchema: GenMessage<UpdateStrategyStatusResponse>;

/**
 * @generated from message trading_agent.GetAgentStatusRequest
 */
export declare type GetAgentStatusRequest = Message<"trading_agent.GetAgentStatusRequest"> & {
  /**
   * Include performance metrics
   *
   * @generated from field: bool include_performance = 1;
   */
  includePerformance: boolean;

  /**
   * Include current positions
   *
   * @generated from field: bool include_positions = 2;
   */
  includePositions: boolean;
};

/**
 * Describes the message trading_agent.GetAgentStatusRequest.
 * Use `create(GetAgentStatusRequestSchema)` to create a new message.
 */
export declare const GetAgentStatusRequestSchema: GenMessage<GetAgentStatusRequest>;

/**
 * @generated from message trading_agent.GetAgentStatusResponse
 */
export declare type GetAgentStatusResponse = Message<"trading_agent.GetAgentStatusResponse"> & {
  /**
   * @generated from field: trading_agent.AgentStatus status = 1;
   */
  status?: AgentStatus;

  /**
   * @generated from field: optional trading_agent.AgentPerformanceMetrics performance = 2;
   */
  performance?: AgentPerformanceMetrics;

  /**
   * @generated from field: optional trading_agent.PositionSummary positions = 3;
   */
  positions?: PositionSummary;

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

/**
 * Describes the message trading_agent.GetAgentStatusResponse.
 * Use `create(GetAgentStatusResponseSchema)` to create a new message.
 */
export declare const GetAgentStatusResponseSchema: GenMessage<GetAgentStatusResponse>;

/**
 * @generated from message trading_agent.StreamAgentActivityRequest
 */
export declare type StreamAgentActivityRequest = Message<"trading_agent.StreamAgentActivityRequest"> & {
  /**
   * Filter by activity type
   *
   * @generated from field: repeated trading_agent.ActivityType activity_types = 1;
   */
  activityTypes: ActivityType[];
};

/**
 * Describes the message trading_agent.StreamAgentActivityRequest.
 * Use `create(StreamAgentActivityRequestSchema)` to create a new message.
 */
export declare const StreamAgentActivityRequestSchema: GenMessage<StreamAgentActivityRequest>;

/**
 * @generated from message trading_agent.AgentActivityEvent
 */
export declare type AgentActivityEvent = Message<"trading_agent.AgentActivityEvent"> & {
  /**
   * @generated from field: trading_agent.ActivityType activity_type = 1;
   */
  activityType: ActivityType;

  /**
   * @generated from oneof trading_agent.AgentActivityEvent.event
   */
  event: {
    /**
     * @generated from field: trading_agent.UniverseSelectionEvent universe_event = 2;
     */
    value: UniverseSelectionEvent;
    case: "universeEvent";
  } | {
    /**
     * @generated from field: trading_agent.AssetSelectionEvent asset_event = 3;
     */
    value: AssetSelectionEvent;
    case: "assetEvent";
  } | {
    /**
     * @generated from field: trading_agent.AllocationEvent allocation_event = 4;
     */
    value: AllocationEvent;
    case: "allocationEvent";
  } | {
    /**
     * @generated from field: trading_agent.OrderGenerationEvent order_event = 5;
     */
    value: OrderGenerationEvent;
    case: "orderEvent";
  } | {
    /**
     * @generated from field: trading_agent.StrategyEvent strategy_event = 6;
     */
    value: StrategyEvent;
    case: "strategyEvent";
  } | { case: undefined; value?: undefined };

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

/**
 * Describes the message trading_agent.AgentActivityEvent.
 * Use `create(AgentActivityEventSchema)` to create a new message.
 */
export declare const AgentActivityEventSchema: GenMessage<AgentActivityEvent>;

/**
 * @generated from message trading_agent.GetAgentPerformanceRequest
 */
export declare type GetAgentPerformanceRequest = Message<"trading_agent.GetAgentPerformanceRequest"> & {
  /**
   * Performance window start (nanoseconds)
   *
   * @generated from field: optional int64 start_time = 1;
   */
  startTime?: bigint;

  /**
   * Performance window end (nanoseconds)
   *
   * @generated from field: optional int64 end_time = 2;
   */
  endTime?: bigint;

  /**
   * Include per-strategy performance
   *
   * @generated from field: bool include_strategy_breakdown = 3;
   */
  includeStrategyBreakdown: boolean;
};

/**
 * Describes the message trading_agent.GetAgentPerformanceRequest.
 * Use `create(GetAgentPerformanceRequestSchema)` to create a new message.
 */
export declare const GetAgentPerformanceRequestSchema: GenMessage<GetAgentPerformanceRequest>;

/**
 * @generated from message trading_agent.GetAgentPerformanceResponse
 */
export declare type GetAgentPerformanceResponse = Message<"trading_agent.GetAgentPerformanceResponse"> & {
  /**
   * @generated from field: trading_agent.AgentPerformanceMetrics metrics = 1;
   */
  metrics?: AgentPerformanceMetrics;

  /**
   * @generated from field: repeated trading_agent.StrategyPerformance strategy_performance = 2;
   */
  strategyPerformance: StrategyPerformance[];

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

/**
 * Describes the message trading_agent.GetAgentPerformanceResponse.
 * Use `create(GetAgentPerformanceResponseSchema)` to create a new message.
 */
export declare const GetAgentPerformanceResponseSchema: GenMessage<GetAgentPerformanceResponse>;

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

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

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

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

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

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

/**
 * @generated from message trading_agent.Instrument
 */
export declare type Instrument = Message<"trading_agent.Instrument"> & {
  /**
   * Trading symbol (ES.FUT, NQ.FUT)
   *
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * Exchange identifier
   *
   * @generated from field: string exchange = 2;
   */
  exchange: string;

  /**
   * Futures, equity, FX, etc.
   *
   * @generated from field: trading_agent.InstrumentType instrument_type = 3;
   */
  instrumentType: InstrumentType;

  /**
   * Liquidity rating (0.0-1.0)
   *
   * @generated from field: double liquidity_score = 4;
   */
  liquidityScore: number;

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

  /**
   * ML prediction confidence
   *
   * @generated from field: double ml_signal_strength = 6;
   */
  mlSignalStrength: number;

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

/**
 * Describes the message trading_agent.Instrument.
 * Use `create(InstrumentSchema)` to create a new message.
 */
export declare const InstrumentSchema: GenMessage<Instrument>;

/**
 * @generated from message trading_agent.UniverseCriteria
 */
export declare type UniverseCriteria = Message<"trading_agent.UniverseCriteria"> & {
  /**
   * Minimum liquidity threshold
   *
   * @generated from field: double min_liquidity_score = 1;
   */
  minLiquidityScore: number;

  /**
   * Minimum volatility
   *
   * @generated from field: double min_volatility = 2;
   */
  minVolatility: number;

  /**
   * Maximum volatility
   *
   * @generated from field: double max_volatility = 3;
   */
  maxVolatility: number;

  /**
   * @generated from field: repeated trading_agent.InstrumentType allowed_types = 4;
   */
  allowedTypes: InstrumentType[];

  /**
   * Allowed exchanges
   *
   * @generated from field: repeated string exchanges = 5;
   */
  exchanges: string[];

  /**
   * Minimum ML signal confidence
   *
   * @generated from field: double min_ml_confidence = 6;
   */
  minMlConfidence: number;
};

/**
 * Describes the message trading_agent.UniverseCriteria.
 * Use `create(UniverseCriteriaSchema)` to create a new message.
 */
export declare const UniverseCriteriaSchema: GenMessage<UniverseCriteria>;

/**
 * @generated from message trading_agent.UniverseMetrics
 */
export declare type UniverseMetrics = Message<"trading_agent.UniverseMetrics"> & {
  /**
   * @generated from field: uint32 total_instruments = 1;
   */
  totalInstruments: number;

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

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

  /**
   * 0.0-1.0
   *
   * @generated from field: double portfolio_diversification = 4;
   */
  portfolioDiversification: number;
};

/**
 * Describes the message trading_agent.UniverseMetrics.
 * Use `create(UniverseMetricsSchema)` to create a new message.
 */
export declare const UniverseMetricsSchema: GenMessage<UniverseMetrics>;

/**
 * @generated from message trading_agent.AssetSelectionCriteria
 */
export declare type AssetSelectionCriteria = Message<"trading_agent.AssetSelectionCriteria"> & {
  /**
   * Minimum ML confidence
   *
   * @generated from field: double min_ml_signal_strength = 1;
   */
  minMlSignalStrength: number;

  /**
   * Minimum risk-adjusted return
   *
   * @generated from field: double min_sharpe_ratio = 2;
   */
  minSharpeRatio: number;

  /**
   * Top-N, threshold-based, etc.
   *
   * @generated from field: trading_agent.SelectionMode mode = 3;
   */
  mode: SelectionMode;
};

/**
 * Describes the message trading_agent.AssetSelectionCriteria.
 * Use `create(AssetSelectionCriteriaSchema)` to create a new message.
 */
export declare const AssetSelectionCriteriaSchema: GenMessage<AssetSelectionCriteria>;

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

  /**
   * ML model prediction score
   *
   * @generated from field: double ml_score = 2;
   */
  mlScore: number;

  /**
   * Momentum factor score
   *
   * @generated from field: double momentum_score = 3;
   */
  momentumScore: number;

  /**
   * Value factor score
   *
   * @generated from field: double value_score = 4;
   */
  valueScore: number;

  /**
   * Quality factor score
   *
   * @generated from field: double quality_score = 5;
   */
  qualityScore: number;

  /**
   * Final weighted score
   *
   * @generated from field: double composite_score = 6;
   */
  compositeScore: number;

  /**
   * Per-model scores (DQN, MAMBA2, etc.)
   *
   * @generated from field: map<string, double> model_scores = 7;
   */
  modelScores: { [key: string]: number };
};

/**
 * Describes the message trading_agent.AssetScore.
 * Use `create(AssetScoreSchema)` to create a new message.
 */
export declare const AssetScoreSchema: GenMessage<AssetScore>;

/**
 * @generated from message trading_agent.SelectionMetrics
 */
export declare type SelectionMetrics = Message<"trading_agent.SelectionMetrics"> & {
  /**
   * @generated from field: uint32 assets_evaluated = 1;
   */
  assetsEvaluated: number;

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

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

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

  /**
   * @generated from field: double max_score = 5;
   */
  maxScore: number;
};

/**
 * Describes the message trading_agent.SelectionMetrics.
 * Use `create(SelectionMetricsSchema)` to create a new message.
 */
export declare const SelectionMetricsSchema: GenMessage<SelectionMetrics>;

/**
 * @generated from message trading_agent.AllocationStrategy
 */
export declare type AllocationStrategy = Message<"trading_agent.AllocationStrategy"> & {
  /**
   * Equal-weight, risk-parity, etc.
   *
   * @generated from field: trading_agent.AllocationType allocation_type = 1;
   */
  allocationType: AllocationType;

  /**
   * Strategy-specific parameters
   *
   * @generated from field: map<string, double> parameters = 2;
   */
  parameters: { [key: string]: number };
};

/**
 * Describes the message trading_agent.AllocationStrategy.
 * Use `create(AllocationStrategySchema)` to create a new message.
 */
export declare const AllocationStrategySchema: GenMessage<AllocationStrategy>;

/**
 * @generated from message trading_agent.RiskConstraints
 */
export declare type RiskConstraints = Message<"trading_agent.RiskConstraints"> & {
  /**
   * Max % of portfolio per position
   *
   * @generated from field: double max_position_size_pct = 1;
   */
  maxPositionSizePct: number;

  /**
   * Max % per sector
   *
   * @generated from field: double max_sector_exposure_pct = 2;
   */
  maxSectorExposurePct: number;

  /**
   * Portfolio volatility limit
   *
   * @generated from field: double max_volatility = 3;
   */
  maxVolatility: number;

  /**
   * Value at Risk (95%)
   *
   * @generated from field: double max_var_95 = 4;
   */
  maxVar95: number;

  /**
   * Maximum leverage ratio
   *
   * @generated from field: double max_leverage = 5;
   */
  maxLeverage: number;
};

/**
 * Describes the message trading_agent.RiskConstraints.
 * Use `create(RiskConstraintsSchema)` to create a new message.
 */
export declare const RiskConstraintsSchema: GenMessage<RiskConstraints>;

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

  /**
   * Target allocation weight (0.0-1.0)
   *
   * @generated from field: double target_weight = 2;
   */
  targetWeight: number;

  /**
   * Target capital in USD
   *
   * @generated from field: double target_capital = 3;
   */
  targetCapital: number;

  /**
   * Target position size
   *
   * @generated from field: double target_quantity = 4;
   */
  targetQuantity: number;

  /**
   * Current allocation weight
   *
   * @generated from field: double current_weight = 5;
   */
  currentWeight: number;

  /**
   * Current position size
   *
   * @generated from field: double current_quantity = 6;
   */
  currentQuantity: number;

  /**
   * Required change
   *
   * @generated from field: double rebalance_delta = 7;
   */
  rebalanceDelta: number;
};

/**
 * Describes the message trading_agent.AssetAllocation.
 * Use `create(AssetAllocationSchema)` to create a new message.
 */
export declare const AssetAllocationSchema: GenMessage<AssetAllocation>;

/**
 * @generated from message trading_agent.AllocationMetrics
 */
export declare type AllocationMetrics = Message<"trading_agent.AllocationMetrics"> & {
  /**
   * Should be ~1.0
   *
   * @generated from field: double total_weight = 1;
   */
  totalWeight: number;

  /**
   * Expected portfolio volatility
   *
   * @generated from field: double portfolio_volatility = 2;
   */
  portfolioVolatility: number;

  /**
   * Expected Sharpe ratio
   *
   * @generated from field: double portfolio_sharpe = 3;
   */
  portfolioSharpe: number;

  /**
   * Portfolio VaR (95%)
   *
   * @generated from field: double var_95 = 4;
   */
  var95: number;

  /**
   * Expected max drawdown
   *
   * @generated from field: double max_drawdown_estimate = 5;
   */
  maxDrawdownEstimate: number;
};

/**
 * Describes the message trading_agent.AllocationMetrics.
 * Use `create(AllocationMetricsSchema)` to create a new message.
 */
export declare const AllocationMetricsSchema: GenMessage<AllocationMetrics>;

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

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

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

  /**
   * Positive = buy, negative = sell
   *
   * @generated from field: double delta_quantity = 4;
   */
  deltaQuantity: number;

  /**
   * @generated from field: trading_agent.RebalanceReason reason = 5;
   */
  reason: RebalanceReason;
};

/**
 * Describes the message trading_agent.RebalanceAction.
 * Use `create(RebalanceActionSchema)` to create a new message.
 */
export declare const RebalanceActionSchema: GenMessage<RebalanceAction>;

/**
 * @generated from message trading_agent.RebalanceMetrics
 */
export declare type RebalanceMetrics = Message<"trading_agent.RebalanceMetrics"> & {
  /**
   * @generated from field: uint32 total_rebalance_actions = 1;
   */
  totalRebalanceActions: number;

  /**
   * Total capital moved (USD)
   *
   * @generated from field: double total_turnover = 2;
   */
  totalTurnover: number;

  /**
   * Estimated transaction costs
   *
   * @generated from field: double estimated_cost = 3;
   */
  estimatedCost: number;
};

/**
 * Describes the message trading_agent.RebalanceMetrics.
 * Use `create(RebalanceMetricsSchema)` to create a new message.
 */
export declare const RebalanceMetricsSchema: GenMessage<RebalanceMetrics>;

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

  /**
   * DQN, MAMBA2, PPO, TFT
   *
   * @generated from field: string model_name = 2;
   */
  modelName: string;

  /**
   * -1.0 to 1.0 (short to long)
   *
   * @generated from field: double signal_strength = 3;
   */
  signalStrength: number;

  /**
   * 0.0 to 1.0
   *
   * @generated from field: double confidence = 4;
   */
  confidence: number;

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

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

/**
 * Describes the message trading_agent.MLSignal.
 * Use `create(MLSignalSchema)` to create a new message.
 */
export declare const MLSignalSchema: GenMessage<MLSignal>;

/**
 * @generated from message trading_agent.OrderGenerationStrategy
 */
export declare type OrderGenerationStrategy = Message<"trading_agent.OrderGenerationStrategy"> & {
  /**
   * @generated from field: trading_agent.OrderGenerationMode mode = 1;
   */
  mode: OrderGenerationMode;

  /**
   * Max acceptable slippage (%)
   *
   * @generated from field: double slippage_tolerance = 2;
   */
  slippageTolerance: number;

  /**
   * Use limit orders vs market
   *
   * @generated from field: bool use_limit_orders = 3;
   */
  useLimitOrders: boolean;

  /**
   * Offset from mid price (%)
   *
   * @generated from field: double limit_price_offset = 4;
   */
  limitPriceOffset: number;
};

/**
 * Describes the message trading_agent.OrderGenerationStrategy.
 * Use `create(OrderGenerationStrategySchema)` to create a new message.
 */
export declare const OrderGenerationStrategySchema: GenMessage<OrderGenerationStrategy>;

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

  /**
   * BUY or SELL
   *
   * @generated from field: trading_agent.OrderSide side = 2;
   */
  side: OrderSide;

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

  /**
   * MARKET, LIMIT, etc.
   *
   * @generated from field: trading_agent.OrderType order_type = 4;
   */
  orderType: OrderType;

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

  /**
   * Why this order was generated
   *
   * @generated from field: string rationale = 6;
   */
  rationale: string;

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

/**
 * Describes the message trading_agent.GeneratedOrder.
 * Use `create(GeneratedOrderSchema)` to create a new message.
 */
export declare const GeneratedOrderSchema: GenMessage<GeneratedOrder>;

/**
 * @generated from message trading_agent.OrderGenerationMetrics
 */
export declare type OrderGenerationMetrics = Message<"trading_agent.OrderGenerationMetrics"> & {
  /**
   * @generated from field: uint32 orders_generated = 1;
   */
  ordersGenerated: number;

  /**
   * Total order value (USD)
   *
   * @generated from field: double total_notional = 2;
   */
  totalNotional: number;

  /**
   * @generated from field: double avg_order_size = 3;
   */
  avgOrderSize: number;
};

/**
 * Describes the message trading_agent.OrderGenerationMetrics.
 * Use `create(OrderGenerationMetricsSchema)` to create a new message.
 */
export declare const OrderGenerationMetricsSchema: GenMessage<OrderGenerationMetrics>;

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

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

  /**
   * From Trading Service
   *
   * @generated from field: optional string order_id = 3;
   */
  orderId?: string;

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

/**
 * Describes the message trading_agent.OrderSubmissionResult.
 * Use `create(OrderSubmissionResultSchema)` to create a new message.
 */
export declare const OrderSubmissionResultSchema: GenMessage<OrderSubmissionResult>;

/**
 * @generated from message trading_agent.OrderSubmissionMetrics
 */
export declare type OrderSubmissionMetrics = Message<"trading_agent.OrderSubmissionMetrics"> & {
  /**
   * @generated from field: uint32 orders_submitted = 1;
   */
  ordersSubmitted: number;

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

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

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

/**
 * Describes the message trading_agent.OrderSubmissionMetrics.
 * Use `create(OrderSubmissionMetricsSchema)` to create a new message.
 */
export declare const OrderSubmissionMetricsSchema: GenMessage<OrderSubmissionMetrics>;

/**
 * @generated from message trading_agent.Strategy
 */
export declare type Strategy = Message<"trading_agent.Strategy"> & {
  /**
   * @generated from field: string strategy_id = 1;
   */
  strategyId: string;

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

  /**
   * @generated from field: trading_agent.StrategyType strategy_type = 3;
   */
  strategyType: StrategyType;

  /**
   * @generated from field: trading_agent.StrategyStatus status = 4;
   */
  status: StrategyStatus;

  /**
   * @generated from field: trading_agent.StrategyConfig config = 5;
   */
  config?: StrategyConfig;

  /**
   * @generated from field: trading_agent.StrategyPerformance performance = 6;
   */
  performance?: StrategyPerformance;

  /**
   * @generated from field: int64 created_at = 7;
   */
  createdAt: bigint;

  /**
   * @generated from field: int64 updated_at = 8;
   */
  updatedAt: bigint;
};

/**
 * Describes the message trading_agent.Strategy.
 * Use `create(StrategySchema)` to create a new message.
 */
export declare const StrategySchema: GenMessage<Strategy>;

/**
 * @generated from message trading_agent.StrategyConfig
 */
export declare type StrategyConfig = Message<"trading_agent.StrategyConfig"> & {
  /**
   * Strategy-specific parameters
   *
   * @generated from field: map<string, string> parameters = 1;
   */
  parameters: { [key: string]: string };

  /**
   * Symbols this strategy trades
   *
   * @generated from field: repeated string target_symbols = 2;
   */
  targetSymbols: string[];

  /**
   * Max % of portfolio for this strategy
   *
   * @generated from field: double max_capital_pct = 3;
   */
  maxCapitalPct: number;
};

/**
 * Describes the message trading_agent.StrategyConfig.
 * Use `create(StrategyConfigSchema)` to create a new message.
 */
export declare const StrategyConfigSchema: GenMessage<StrategyConfig>;

/**
 * @generated from message trading_agent.StrategyPerformance
 */
export declare type StrategyPerformance = Message<"trading_agent.StrategyPerformance"> & {
  /**
   * @generated from field: string strategy_id = 1;
   */
  strategyId: string;

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

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

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

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

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

  /**
   * @generated from field: int64 period_end = 7;
   */
  periodEnd: bigint;
};

/**
 * Describes the message trading_agent.StrategyPerformance.
 * Use `create(StrategyPerformanceSchema)` to create a new message.
 */
export declare const StrategyPerformanceSchema: GenMessage<StrategyPerformance>;

/**
 * @generated from message trading_agent.AgentStatus
 */
export declare type AgentStatus = Message<"trading_agent.AgentStatus"> & {
  /**
   * @generated from field: trading_agent.AgentState state = 1;
   */
  state: AgentState;

  /**
   * @generated from field: string current_universe_id = 2;
   */
  currentUniverseId: string;

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

  /**
   * @generated from field: uint32 selected_assets = 4;
   */
  selectedAssets: number;

  /**
   * % of capital deployed
   *
   * @generated from field: double portfolio_utilization = 5;
   */
  portfolioUtilization: number;

  /**
   * @generated from field: int64 last_action_timestamp = 6;
   */
  lastActionTimestamp: bigint;
};

/**
 * Describes the message trading_agent.AgentStatus.
 * Use `create(AgentStatusSchema)` to create a new message.
 */
export declare const AgentStatusSchema: GenMessage<AgentStatus>;

/**
 * @generated from message trading_agent.AgentPerformanceMetrics
 */
export declare type AgentPerformanceMetrics = Message<"trading_agent.AgentPerformanceMetrics"> & {
  /**
   * @generated from field: double total_pnl = 1;
   */
  totalPnl: number;

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

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

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

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

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

  /**
   * Annualized
   *
   * @generated from field: double portfolio_turnover = 7;
   */
  portfolioTurnover: number;

  /**
   * @generated from field: int64 period_start = 8;
   */
  periodStart: bigint;

  /**
   * @generated from field: int64 period_end = 9;
   */
  periodEnd: bigint;
};

/**
 * Describes the message trading_agent.AgentPerformanceMetrics.
 * Use `create(AgentPerformanceMetricsSchema)` to create a new message.
 */
export declare const AgentPerformanceMetricsSchema: GenMessage<AgentPerformanceMetrics>;

/**
 * @generated from message trading_agent.PositionSummary
 */
export declare type PositionSummary = Message<"trading_agent.PositionSummary"> & {
  /**
   * @generated from field: repeated trading_agent.Position positions = 1;
   */
  positions: Position[];

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

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

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

/**
 * Describes the message trading_agent.PositionSummary.
 * Use `create(PositionSummarySchema)` to create a new message.
 */
export declare const PositionSummarySchema: GenMessage<PositionSummary>;

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

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

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

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

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

  /**
   * % of portfolio
   *
   * @generated from field: double weight = 6;
   */
  weight: number;
};

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

/**
 * @generated from message trading_agent.UniverseSelectionEvent
 */
export declare type UniverseSelectionEvent = Message<"trading_agent.UniverseSelectionEvent"> & {
  /**
   * @generated from field: string universe_id = 1;
   */
  universeId: string;

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

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

  /**
   * @generated from field: trading_agent.UniverseMetrics metrics = 4;
   */
  metrics?: UniverseMetrics;
};

/**
 * Describes the message trading_agent.UniverseSelectionEvent.
 * Use `create(UniverseSelectionEventSchema)` to create a new message.
 */
export declare const UniverseSelectionEventSchema: GenMessage<UniverseSelectionEvent>;

/**
 * @generated from message trading_agent.AssetSelectionEvent
 */
export declare type AssetSelectionEvent = Message<"trading_agent.AssetSelectionEvent"> & {
  /**
   * @generated from field: repeated trading_agent.AssetScore selected_assets = 1;
   */
  selectedAssets: AssetScore[];

  /**
   * @generated from field: trading_agent.SelectionMetrics metrics = 2;
   */
  metrics?: SelectionMetrics;
};

/**
 * Describes the message trading_agent.AssetSelectionEvent.
 * Use `create(AssetSelectionEventSchema)` to create a new message.
 */
export declare const AssetSelectionEventSchema: GenMessage<AssetSelectionEvent>;

/**
 * @generated from message trading_agent.AllocationEvent
 */
export declare type AllocationEvent = Message<"trading_agent.AllocationEvent"> & {
  /**
   * @generated from field: string allocation_id = 1;
   */
  allocationId: string;

  /**
   * @generated from field: repeated trading_agent.AssetAllocation allocations = 2;
   */
  allocations: AssetAllocation[];

  /**
   * @generated from field: trading_agent.AllocationMetrics metrics = 3;
   */
  metrics?: AllocationMetrics;
};

/**
 * Describes the message trading_agent.AllocationEvent.
 * Use `create(AllocationEventSchema)` to create a new message.
 */
export declare const AllocationEventSchema: GenMessage<AllocationEvent>;

/**
 * @generated from message trading_agent.OrderGenerationEvent
 */
export declare type OrderGenerationEvent = Message<"trading_agent.OrderGenerationEvent"> & {
  /**
   * @generated from field: string order_batch_id = 1;
   */
  orderBatchId: string;

  /**
   * @generated from field: repeated trading_agent.GeneratedOrder orders = 2;
   */
  orders: GeneratedOrder[];

  /**
   * @generated from field: trading_agent.OrderGenerationMetrics metrics = 3;
   */
  metrics?: OrderGenerationMetrics;
};

/**
 * Describes the message trading_agent.OrderGenerationEvent.
 * Use `create(OrderGenerationEventSchema)` to create a new message.
 */
export declare const OrderGenerationEventSchema: GenMessage<OrderGenerationEvent>;

/**
 * @generated from message trading_agent.StrategyEvent
 */
export declare type StrategyEvent = Message<"trading_agent.StrategyEvent"> & {
  /**
   * @generated from field: string strategy_id = 1;
   */
  strategyId: string;

  /**
   * @generated from field: trading_agent.StrategyEventType event_type = 2;
   */
  eventType: StrategyEventType;

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

/**
 * Describes the message trading_agent.StrategyEvent.
 * Use `create(StrategyEventSchema)` to create a new message.
 */
export declare const StrategyEventSchema: GenMessage<StrategyEvent>;

/**
 * @generated from enum trading_agent.InstrumentType
 */
export enum InstrumentType {
  /**
   * @generated from enum value: INSTRUMENT_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

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

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

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

  /**
   * @generated from enum value: INSTRUMENT_TYPE_OPTIONS = 4;
   */
  OPTIONS = 4,

  /**
   * @generated from enum value: INSTRUMENT_TYPE_CRYPTO = 5;
   */
  CRYPTO = 5,
}

/**
 * Describes the enum trading_agent.InstrumentType.
 */
export declare const InstrumentTypeSchema: GenEnum<InstrumentType>;

/**
 * @generated from enum trading_agent.SelectionMode
 */
export enum SelectionMode {
  /**
   * @generated from enum value: SELECTION_MODE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Select top N by score
   *
   * @generated from enum value: SELECTION_MODE_TOP_N = 1;
   */
  TOP_N = 1,

  /**
   * Select all above threshold
   *
   * @generated from enum value: SELECTION_MODE_THRESHOLD = 2;
   */
  THRESHOLD = 2,

  /**
   * Select top quantile (e.g., top 20%)
   *
   * @generated from enum value: SELECTION_MODE_QUANTILE = 3;
   */
  QUANTILE = 3,
}

/**
 * Describes the enum trading_agent.SelectionMode.
 */
export declare const SelectionModeSchema: GenEnum<SelectionMode>;

/**
 * @generated from enum trading_agent.AllocationType
 */
export enum AllocationType {
  /**
   * @generated from enum value: ALLOCATION_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * 1/N allocation
   *
   * @generated from enum value: ALLOCATION_TYPE_EQUAL_WEIGHT = 1;
   */
  EQUAL_WEIGHT = 1,

  /**
   * Equal risk contribution
   *
   * @generated from enum value: ALLOCATION_TYPE_RISK_PARITY = 2;
   */
  RISK_PARITY = 2,

  /**
   * ML-based optimization
   *
   * @generated from enum value: ALLOCATION_TYPE_ML_OPTIMIZED = 3;
   */
  ML_OPTIMIZED = 3,

  /**
   * Kelly criterion
   *
   * @generated from enum value: ALLOCATION_TYPE_KELLY = 4;
   */
  KELLY = 4,

  /**
   * Mean-variance optimization
   *
   * @generated from enum value: ALLOCATION_TYPE_MEAN_VARIANCE = 5;
   */
  MEAN_VARIANCE = 5,
}

/**
 * Describes the enum trading_agent.AllocationType.
 */
export declare const AllocationTypeSchema: GenEnum<AllocationType>;

/**
 * @generated from enum trading_agent.RebalanceReason
 */
export enum RebalanceReason {
  /**
   * @generated from enum value: REBALANCE_REASON_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Allocation drifted from target
   *
   * @generated from enum value: REBALANCE_REASON_DRIFT = 1;
   */
  DRIFT = 1,

  /**
   * Universe updated
   *
   * @generated from enum value: REBALANCE_REASON_UNIVERSE_CHANGE = 2;
   */
  UNIVERSE_CHANGE = 2,

  /**
   * Risk limit violation
   *
   * @generated from enum value: REBALANCE_REASON_RISK_LIMIT = 3;
   */
  RISK_LIMIT = 3,

  /**
   * Manual rebalance request
   *
   * @generated from enum value: REBALANCE_REASON_MANUAL = 4;
   */
  MANUAL = 4,
}

/**
 * Describes the enum trading_agent.RebalanceReason.
 */
export declare const RebalanceReasonSchema: GenEnum<RebalanceReason>;

/**
 * @generated from enum trading_agent.OrderGenerationMode
 */
export enum OrderGenerationMode {
  /**
   * @generated from enum value: ORDER_GENERATION_MODE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Market orders, immediate execution
   *
   * @generated from enum value: ORDER_GENERATION_MODE_AGGRESSIVE = 1;
   */
  AGGRESSIVE = 1,

  /**
   * Limit orders, minimize slippage
   *
   * @generated from enum value: ORDER_GENERATION_MODE_PASSIVE = 2;
   */
  PASSIVE = 2,

  /**
   * Adapt based on market conditions
   *
   * @generated from enum value: ORDER_GENERATION_MODE_ADAPTIVE = 3;
   */
  ADAPTIVE = 3,
}

/**
 * Describes the enum trading_agent.OrderGenerationMode.
 */
export declare const OrderGenerationModeSchema: GenEnum<OrderGenerationMode>;

/**
 * @generated from enum trading_agent.OrderSide
 */
export enum OrderSide {
  /**
   * @generated from enum value: ORDER_SIDE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

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

  /**
   * @generated from enum value: ORDER_SIDE_SELL = 2;
   */
  SELL = 2,
}

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

/**
 * @generated from enum trading_agent.OrderType
 */
export enum OrderType {
  /**
   * @generated from enum value: ORDER_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

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

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

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

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

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

/**
 * @generated from enum trading_agent.StrategyType
 */
export enum StrategyType {
  /**
   * @generated from enum value: STRATEGY_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Ensemble ML predictions
   *
   * @generated from enum value: STRATEGY_TYPE_ML_ENSEMBLE = 1;
   */
  ML_ENSEMBLE = 1,

  /**
   * Mean reversion
   *
   * @generated from enum value: STRATEGY_TYPE_MEAN_REVERSION = 2;
   */
  MEAN_REVERSION = 2,

  /**
   * Momentum/trend following
   *
   * @generated from enum value: STRATEGY_TYPE_MOMENTUM = 3;
   */
  MOMENTUM = 3,

  /**
   * Statistical arbitrage
   *
   * @generated from enum value: STRATEGY_TYPE_ARBITRAGE = 4;
   */
  ARBITRAGE = 4,

  /**
   * Market making
   *
   * @generated from enum value: STRATEGY_TYPE_MARKET_MAKING = 5;
   */
  MARKET_MAKING = 5,
}

/**
 * Describes the enum trading_agent.StrategyType.
 */
export declare const StrategyTypeSchema: GenEnum<StrategyType>;

/**
 * @generated from enum trading_agent.StrategyStatus
 */
export enum StrategyStatus {
  /**
   * @generated from enum value: STRATEGY_STATUS_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

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

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

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

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

/**
 * Describes the enum trading_agent.StrategyStatus.
 */
export declare const StrategyStatusSchema: GenEnum<StrategyStatus>;

/**
 * @generated from enum trading_agent.AgentState
 */
export enum AgentState {
  /**
   * @generated from enum value: AGENT_STATE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

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

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

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

  /**
   * @generated from enum value: AGENT_STATE_ERROR = 4;
   */
  ERROR = 4,

  /**
   * @generated from enum value: AGENT_STATE_SHUTDOWN = 5;
   */
  SHUTDOWN = 5,
}

/**
 * Describes the enum trading_agent.AgentState.
 */
export declare const AgentStateSchema: GenEnum<AgentState>;

/**
 * @generated from enum trading_agent.ActivityType
 */
export enum ActivityType {
  /**
   * @generated from enum value: ACTIVITY_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

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

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

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

  /**
   * @generated from enum value: ACTIVITY_TYPE_ORDER_GENERATION = 4;
   */
  ORDER_GENERATION = 4,

  /**
   * @generated from enum value: ACTIVITY_TYPE_STRATEGY = 5;
   */
  STRATEGY = 5,
}

/**
 * Describes the enum trading_agent.ActivityType.
 */
export declare const ActivityTypeSchema: GenEnum<ActivityType>;

/**
 * @generated from enum trading_agent.StrategyEventType
 */
export enum StrategyEventType {
  /**
   * @generated from enum value: STRATEGY_EVENT_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

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

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

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

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

/**
 * Describes the enum trading_agent.StrategyEventType.
 */
export declare const StrategyEventTypeSchema: GenEnum<StrategyEventType>;

/**
 * Trading Agent Service orchestrates trading decisions across universe selection,
 * asset selection, portfolio allocation, and strategy coordination.
 *
 * @generated from service trading_agent.TradingAgentService
 */
export declare const TradingAgentService: GenService<{
  /**
   * Universe Management
   * Select tradable universe based on liquidity, volatility, and ML signals
   *
   * @generated from rpc trading_agent.TradingAgentService.SelectUniverse
   */
  selectUniverse: {
    methodKind: "unary";
    input: typeof SelectUniverseRequestSchema;
    output: typeof SelectUniverseResponseSchema;
  },
  /**
   * Get current trading universe configuration
   *
   * @generated from rpc trading_agent.TradingAgentService.GetUniverse
   */
  getUniverse: {
    methodKind: "unary";
    input: typeof GetUniverseRequestSchema;
    output: typeof GetUniverseResponseSchema;
  },
  /**
   * Update universe selection criteria
   *
   * @generated from rpc trading_agent.TradingAgentService.UpdateUniverseCriteria
   */
  updateUniverseCriteria: {
    methodKind: "unary";
    input: typeof UpdateUniverseCriteriaRequestSchema;
    output: typeof UpdateUniverseCriteriaResponseSchema;
  },
  /**
   * Asset Selection
   * Select specific assets to trade within universe
   *
   * @generated from rpc trading_agent.TradingAgentService.SelectAssets
   */
  selectAssets: {
    methodKind: "unary";
    input: typeof SelectAssetsRequestSchema;
    output: typeof SelectAssetsResponseSchema;
  },
  /**
   * Get current asset selection with scores
   *
   * @generated from rpc trading_agent.TradingAgentService.GetSelectedAssets
   */
  getSelectedAssets: {
    methodKind: "unary";
    input: typeof GetSelectedAssetsRequestSchema;
    output: typeof GetSelectedAssetsResponseSchema;
  },
  /**
   * Portfolio Allocation
   * Allocate capital across selected assets
   *
   * @generated from rpc trading_agent.TradingAgentService.AllocatePortfolio
   */
  allocatePortfolio: {
    methodKind: "unary";
    input: typeof AllocatePortfolioRequestSchema;
    output: typeof AllocatePortfolioResponseSchema;
  },
  /**
   * Get current portfolio allocation
   *
   * @generated from rpc trading_agent.TradingAgentService.GetAllocation
   */
  getAllocation: {
    methodKind: "unary";
    input: typeof GetAllocationRequestSchema;
    output: typeof GetAllocationResponseSchema;
  },
  /**
   * Rebalance portfolio based on target allocation
   *
   * @generated from rpc trading_agent.TradingAgentService.RebalancePortfolio
   */
  rebalancePortfolio: {
    methodKind: "unary";
    input: typeof RebalancePortfolioRequestSchema;
    output: typeof RebalancePortfolioResponseSchema;
  },
  /**
   * Order Generation
   * Generate orders based on allocation and ML signals
   *
   * @generated from rpc trading_agent.TradingAgentService.GenerateOrders
   */
  generateOrders: {
    methodKind: "unary";
    input: typeof GenerateOrdersRequestSchema;
    output: typeof GenerateOrdersResponseSchema;
  },
  /**
   * Submit generated orders to Trading Service
   *
   * @generated from rpc trading_agent.TradingAgentService.SubmitAgentOrders
   */
  submitAgentOrders: {
    methodKind: "unary";
    input: typeof SubmitAgentOrdersRequestSchema;
    output: typeof SubmitAgentOrdersResponseSchema;
  },
  /**
   * Strategy Coordination
   * Register a trading strategy with the agent
   *
   * @generated from rpc trading_agent.TradingAgentService.RegisterStrategy
   */
  registerStrategy: {
    methodKind: "unary";
    input: typeof RegisterStrategyRequestSchema;
    output: typeof RegisterStrategyResponseSchema;
  },
  /**
   * Get list of active strategies
   *
   * @generated from rpc trading_agent.TradingAgentService.ListStrategies
   */
  listStrategies: {
    methodKind: "unary";
    input: typeof ListStrategiesRequestSchema;
    output: typeof ListStrategiesResponseSchema;
  },
  /**
   * Enable/disable a strategy
   *
   * @generated from rpc trading_agent.TradingAgentService.UpdateStrategyStatus
   */
  updateStrategyStatus: {
    methodKind: "unary";
    input: typeof UpdateStrategyStatusRequestSchema;
    output: typeof UpdateStrategyStatusResponseSchema;
  },
  /**
   * Agent Monitoring
   * Get comprehensive agent status and performance
   *
   * @generated from rpc trading_agent.TradingAgentService.GetAgentStatus
   */
  getAgentStatus: {
    methodKind: "unary";
    input: typeof GetAgentStatusRequestSchema;
    output: typeof GetAgentStatusResponseSchema;
  },
  /**
   * Stream real-time agent decisions and actions
   *
   * @generated from rpc trading_agent.TradingAgentService.StreamAgentActivity
   */
  streamAgentActivity: {
    methodKind: "server_streaming";
    input: typeof StreamAgentActivityRequestSchema;
    output: typeof AgentActivityEventSchema;
  },
  /**
   * Get agent performance metrics
   *
   * @generated from rpc trading_agent.TradingAgentService.GetAgentPerformance
   */
  getAgentPerformance: {
    methodKind: "unary";
    input: typeof GetAgentPerformanceRequestSchema;
    output: typeof GetAgentPerformanceResponseSchema;
  },
  /**
   * Service Health
   *
   * @generated from rpc trading_agent.TradingAgentService.HealthCheck
   */
  healthCheck: {
    methodKind: "unary";
    input: typeof HealthCheckRequestSchema;
    output: typeof HealthCheckResponseSchema;
  },
  /**
   * Server-streaming: polls GetAgentStatus at gateway level
   *
   * @generated from rpc trading_agent.TradingAgentService.StreamAgentStatus
   */
  streamAgentStatus: {
    methodKind: "server_streaming";
    input: typeof StreamAgentStatusRequestSchema;
    output: typeof GetAgentStatusResponseSchema;
  },
}>;

