import { Commitment, ConfirmOptions, Connection, PublicKey, TransactionVersion } from '@solana/web3.js'; import { IWallet, TxParams } from './types'; import { OracleInfo } from './oracles/types'; import { BulkAccountLoader } from './accounts/bulkAccountLoader'; import { DriftEnv } from './config'; import { TxSender } from './tx/types'; export type DriftClientConfig = { connection: Connection; wallet: IWallet; env?: DriftEnv; programID?: PublicKey; accountSubscription?: DriftClientSubscriptionConfig; opts?: ConfirmOptions; txSender?: TxSender; subAccountIds?: number[]; activeSubAccountId?: number; perpMarketIndexes?: number[]; spotMarketIndexes?: number[]; marketLookupTable?: PublicKey; oracleInfos?: OracleInfo[]; userStats?: boolean; authority?: PublicKey; includeDelegates?: boolean; authoritySubAccountMap?: Map; skipLoadUsers?: boolean; txVersion?: TransactionVersion; txParams?: TxParams; enableMetricsEvents?: boolean; }; export type DriftClientSubscriptionConfig = { type: 'websocket'; resubTimeoutMs?: number; commitment?: Commitment; } | { type: 'polling'; accountLoader: BulkAccountLoader; };