import type { SymbolType } from './exchangedetails.ts'; import type { Exchange } from './types.ts'; export declare function getInstrumentInfo(exchange: Exchange): Promise; export declare function getInstrumentInfo(exchange: Exchange | Exchange[], filter: InstrumentInfoFilter): Promise; export declare function getInstrumentInfo(exchange: Exchange, symbol: string): Promise; export declare function findInstrumentSymbols(exchanges: Exchange[], filter: InstrumentInfoFilter, selector?: InstrumentSymbolSelector): Promise; export type InstrumentSymbolSelector = 'id' | 'datasetId'; export type InstrumentSymbols = { exchange: Exchange; symbols: string[]; }; export type InstrumentInfoFilter = { baseCurrency?: string | string[]; quoteCurrency?: string | string[]; type?: SymbolType | SymbolType[]; contractType?: ContractType | ContractType[]; underlyingType?: UnderlyingType | UnderlyingType[]; active?: boolean; availableSince?: string; availableTo?: string; }; export type ContractType = 'move' | 'linear_future' | 'inverse_future' | 'quanto_future' | 'linear_perpetual' | 'inverse_perpetual' | 'quanto_perpetual' | 'put_option' | 'call_option' | 'turbo_put_option' | 'turbo_call_option' | 'spread' | 'interest_rate_swap' | 'repo' | 'index'; export type UnderlyingType = 'native' | 'equity' | 'commodity' | 'fixed_income' | 'fx' | 'index' | 'pre_market'; export interface InstrumentInfo { /** symbol id */ id: string; /** dataset symbol id, may differ from id */ datasetId?: string; /** exchange id */ exchange: string; /** normalized, so for example bitmex XBTUSD has base currency set to BTC not XBT */ baseCurrency: string; /** normalized, so for example bitfinex BTCUST has quote currency set to USDT, not UST */ quoteCurrency: string; type: SymbolType; /** derivative contract type */ contractType?: ContractType; /** indicates if the instrument can currently be traded. */ active: boolean; /** date in ISO format */ availableSince: string; /** date in ISO format */ availableTo?: string; /** date in ISO format, when the instrument was first listed on the exchange */ listing?: string; /** in ISO format, only for futures and options */ expiry?: string; /** expiration schedule type */ expirationType?: 'daily' | 'weekly' | 'next_week' | 'quarter' | 'next_quarter'; /** the underlying index for derivatives */ underlyingIndex?: string; /** underlying asset class */ underlyingType?: UnderlyingType; /** price tick size, price precision can be calculated from it */ priceIncrement: number; /** amount tick size, amount/size precision can be calculated from it */ amountIncrement: number; /** min order size */ minTradeAmount: number; /** minimum notional value */ minNotional?: number; /** consider it as illustrative only, as it depends in practice on account traded volume levels, different categories, VIP levels, owning exchange currency etc */ makerFee: number; /** consider it as illustrative only, as it depends in practice on account traded volume levels, different categories, VIP levels, owning exchange currency etc */ takerFee: number; /** only for derivatives */ inverse?: boolean; /** only for derivatives */ contractMultiplier?: number; /** only for quanto instruments */ quanto?: boolean; /** only for quanto instruments as settlement currency is different base/quote currency */ settlementCurrency?: string; /** strike price, only for options */ strikePrice?: number; /** option type, only for options */ optionType?: 'call' | 'put'; /** margin mode */ marginMode?: 'isolated' | 'cross'; /** whether margin trading is supported (spot) */ margin?: boolean; /** if this instrument is an alias for another */ aliasFor?: string; /** historical changes to instrument parameters */ changes?: { until: string; priceIncrement?: number; amountIncrement?: number; contractMultiplier?: number; minTradeAmount?: number; makerFee?: number; takerFee?: number; quanto?: boolean; inverse?: boolean; settlementCurrency?: string; underlyingIndex?: string; contractType?: ContractType; quoteCurrency?: string; type?: string; }[]; } //# sourceMappingURL=instrumentinfo.d.ts.map