// @generated
// This file is @generated by prost-build.
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ListTradingPairsRequest {
    #[prost(uint32, optional, tag="1")]
    pub page: ::core::option::Option<u32>,
    #[prost(uint32, optional, tag="2")]
    pub page_size: ::core::option::Option<u32>,
    #[prost(string, optional, tag="3")]
    pub market_type: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="4")]
    pub base_token: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="5")]
    pub quote_token: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(bool, optional, tag="6")]
    pub is_active: ::core::option::Option<bool>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListTradingPairsResponse {
    #[prost(message, repeated, tag="1")]
    pub trading_pairs: ::prost::alloc::vec::Vec<TradingPairData>,
    #[prost(uint32, tag="2")]
    pub page: u32,
    #[prost(uint32, tag="3")]
    pub page_size: u32,
    #[prost(uint32, tag="4")]
    pub total: u32,
    #[prost(uint32, tag="5")]
    pub total_pages: u32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetTradingPairRequest {
    #[prost(string, tag="1")]
    pub trading_pair_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TradingPairData {
    #[prost(string, tag="1")]
    pub base_asset_id: ::prost::alloc::string::String,
    #[prost(int32, tag="2")]
    pub base_decimals: i32,
    #[prost(string, tag="3")]
    pub base_icon_url: ::prost::alloc::string::String,
    #[prost(string, tag="4")]
    pub base_token: ::prost::alloc::string::String,
    #[prost(string, tag="5")]
    pub base_token_contract: ::prost::alloc::string::String,
    #[prost(string, tag="6")]
    pub id: ::prost::alloc::string::String,
    #[prost(bool, tag="7")]
    pub is_active: bool,
    #[prost(int32, tag="8")]
    pub maker_fee_bps: i32,
    #[prost(string, tag="9")]
    pub market_type: ::prost::alloc::string::String,
    #[prost(string, tag="10")]
    pub max_order_size: ::prost::alloc::string::String,
    #[prost(string, tag="11")]
    pub min_order_size: ::prost::alloc::string::String,
    #[prost(string, tag="12")]
    pub quote_asset_id: ::prost::alloc::string::String,
    #[prost(int32, tag="13")]
    pub quote_decimals: i32,
    #[prost(string, tag="14")]
    pub quote_icon_url: ::prost::alloc::string::String,
    #[prost(string, tag="15")]
    pub quote_token: ::prost::alloc::string::String,
    #[prost(string, tag="16")]
    pub quote_token_contract: ::prost::alloc::string::String,
    #[prost(string, tag="17")]
    pub symbol: ::prost::alloc::string::String,
    #[prost(int32, tag="18")]
    pub taker_fee_bps: i32,
    #[prost(string, tag="19")]
    pub tick_size: ::prost::alloc::string::String,
    #[prost(string, optional, tag="20")]
    pub min_leverage: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="21")]
    pub max_leverage: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetTradingPairResponse {
    #[prost(message, optional, tag="1")]
    pub trading_pair: ::core::option::Option<TradingPairData>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetCandlesRequest {
    #[prost(string, tag="1")]
    pub trading_pair_id: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub interval: ::prost::alloc::string::String,
    #[prost(uint64, optional, tag="3")]
    pub start_time: ::core::option::Option<u64>,
    #[prost(uint64, optional, tag="4")]
    pub end_time: ::core::option::Option<u64>,
    #[prost(uint32, optional, tag="5")]
    pub limit: ::core::option::Option<u32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetCandlesResponse {
    #[prost(message, repeated, tag="1")]
    pub candles: ::prost::alloc::vec::Vec<super::super::common::ohlcv::Candle>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetMarketMetadataRequest {
    #[prost(string, tag="1")]
    pub trading_pair_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetMarketMetadataResponse {
    #[prost(string, tag="1")]
    pub base_icon_url: ::prost::alloc::string::String,
    #[prost(string, optional, tag="2")]
    pub high_24h: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="3")]
    pub last_price: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="4")]
    pub last_price_timestamp: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="5")]
    pub low_24h: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="6")]
    pub market_initialization_timestamp: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="7")]
    pub price_change_24h: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="8")]
    pub price_change_percent_24h: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, tag="9")]
    pub quote_icon_url: ::prost::alloc::string::String,
    #[prost(string, tag="10")]
    pub symbol: ::prost::alloc::string::String,
    #[prost(string, optional, tag="11")]
    pub volume_24h: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="12")]
    pub min_leverage: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="13")]
    pub max_leverage: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="14")]
    pub mark_price: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="15")]
    pub index_price: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetOpenInterestRequest {
    #[prost(string, tag="1")]
    pub trading_pair_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetOpenInterestResponse {
    #[prost(string, tag="1")]
    pub trading_pair_id: ::prost::alloc::string::String,
    #[prost(string, optional, tag="2")]
    pub open_interest: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="3")]
    pub updated_at: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetFundingStateRequest {
    #[prost(string, tag="1")]
    pub trading_pair_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetFundingStateResponse {
    #[prost(string, tag="1")]
    pub trading_pair_id: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub current_funding_rate: ::prost::alloc::string::String,
    #[prost(string, optional, tag="3")]
    pub estimated_next_funding_rate: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, tag="4")]
    pub next_funding_time: ::prost::alloc::string::String,
    #[prost(uint32, tag="5")]
    pub funding_interval_seconds: u32,
    #[prost(string, optional, tag="6")]
    pub last_funding_time: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, tag="7")]
    pub updated_at: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ListFundingHistoryRequest {
    #[prost(string, tag="1")]
    pub trading_pair_id: ::prost::alloc::string::String,
    #[prost(string, optional, tag="2")]
    pub start_time: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="3")]
    pub end_time: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(uint32, optional, tag="4")]
    pub page: ::core::option::Option<u32>,
    #[prost(uint32, optional, tag="5")]
    pub page_size: ::core::option::Option<u32>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FundingRecord {
    #[prost(string, tag="1")]
    pub trading_pair_id: ::prost::alloc::string::String,
    #[prost(uint64, tag="2")]
    pub epoch: u64,
    #[prost(string, tag="3")]
    pub funding_rate: ::prost::alloc::string::String,
    #[prost(string, tag="4")]
    pub funding_delta_per_unit: ::prost::alloc::string::String,
    #[prost(string, tag="5")]
    pub cumulative_funding_per_unit: ::prost::alloc::string::String,
    #[prost(string, tag="6")]
    pub reference_price: ::prost::alloc::string::String,
    #[prost(uint32, tag="7")]
    pub sample_count: u32,
    #[prost(string, tag="8")]
    pub window_started_at: ::prost::alloc::string::String,
    #[prost(string, tag="9")]
    pub window_closed_at: ::prost::alloc::string::String,
    #[prost(string, tag="10")]
    pub settled_at: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListFundingHistoryResponse {
    #[prost(message, repeated, tag="1")]
    pub records: ::prost::alloc::vec::Vec<FundingRecord>,
    #[prost(uint32, tag="2")]
    pub total: u32,
    #[prost(uint32, tag="3")]
    pub page: u32,
    #[prost(uint32, tag="4")]
    pub page_size: u32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RiskTier {
    #[prost(string, tag="1")]
    pub initial_margin_ratio: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub maintenance_margin_ratio: ::prost::alloc::string::String,
    #[prost(string, optional, tag="3")]
    pub max_position_notional: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetPerpMarketConfigRequest {
    #[prost(string, tag="1")]
    pub trading_pair_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetPerpMarketConfigResponse {
    #[prost(string, tag="1")]
    pub trading_pair_id: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub symbol: ::prost::alloc::string::String,
    #[prost(string, tag="3")]
    pub min_leverage: ::prost::alloc::string::String,
    #[prost(string, tag="4")]
    pub max_leverage: ::prost::alloc::string::String,
    #[prost(string, tag="5")]
    pub initial_margin_ratio: ::prost::alloc::string::String,
    #[prost(string, tag="6")]
    pub maintenance_margin_ratio: ::prost::alloc::string::String,
    #[prost(uint32, tag="7")]
    pub funding_interval_seconds: u32,
    #[prost(string, optional, tag="8")]
    pub liquidation_fee_bps: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, repeated, tag="9")]
    pub risk_tiers: ::prost::alloc::vec::Vec<RiskTier>,
    #[prost(string, tag="10")]
    pub updated_at: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetPerpMarketSummaryRequest {
    #[prost(string, tag="1")]
    pub trading_pair_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetPerpMarketSummaryResponse {
    #[prost(string, tag="1")]
    pub trading_pair_id: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub symbol: ::prost::alloc::string::String,
    #[prost(string, optional, tag="3")]
    pub last_price: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="4")]
    pub mark_price: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="5")]
    pub index_price: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="6")]
    pub high_24h: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="7")]
    pub low_24h: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="8")]
    pub volume_24h: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="9")]
    pub price_change_24h: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="10")]
    pub price_change_percent_24h: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="11")]
    pub open_interest: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="12")]
    pub current_funding_rate: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="13")]
    pub estimated_next_funding_rate: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="14")]
    pub next_funding_time: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, tag="15")]
    pub market_status: ::prost::alloc::string::String,
    #[prost(string, tag="16")]
    pub market_regime: ::prost::alloc::string::String,
    #[prost(string, tag="17")]
    pub updated_at: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetMarkPriceRequest {
    #[prost(string, tag="1")]
    pub trading_pair_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetMarkPriceResponse {
    #[prost(string, tag="1")]
    pub trading_pair_id: ::prost::alloc::string::String,
    #[prost(string, optional, tag="2")]
    pub mark_price: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, tag="3")]
    pub oracle_provider: ::prost::alloc::string::String,
    #[prost(string, optional, tag="4")]
    pub oracle_epoch: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, tag="5")]
    pub updated_at: ::prost::alloc::string::String,
    #[prost(string, tag="6")]
    pub regime: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct IndexComponent {
    #[prost(string, tag="1")]
    pub provider: ::prost::alloc::string::String,
    #[prost(string, optional, tag="2")]
    pub price: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="3")]
    pub weight: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="4")]
    pub updated_at: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetIndexPriceRequest {
    #[prost(string, tag="1")]
    pub trading_pair_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetIndexPriceResponse {
    #[prost(string, tag="1")]
    pub trading_pair_id: ::prost::alloc::string::String,
    #[prost(string, optional, tag="2")]
    pub index_price: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, repeated, tag="3")]
    pub components: ::prost::alloc::vec::Vec<IndexComponent>,
    #[prost(string, tag="4")]
    pub updated_at: ::prost::alloc::string::String,
}
include!("monaco.api.market.tonic.rs");
// @@protoc_insertion_point(module)