/// import { AccountSubscriber, DataAndSlot, DelistedMarketSetting, DriftClientAccountEvents, DriftClientAccountSubscriber, ResubOpts } from './types'; import { PerpMarketAccount, SpotMarketAccount, StateAccount } from '../types'; import { Program } from '@coral-xyz/anchor'; import StrictEventEmitter from 'strict-event-emitter-types'; import { EventEmitter } from 'events'; import { Commitment, PublicKey } from '@solana/web3.js'; import { OracleInfo, OraclePriceData } from '../oracles/types'; import { OracleClientCache } from '../oracles/oracleClientCache'; import RemoteUtil, { PublicAccountInfo } from './remoteUtil'; export declare class WebSocketDriftClientAccountSubscriber implements DriftClientAccountSubscriber { isSubscribed: boolean; program: Program; commitment?: Commitment; perpMarketIndexes: number[]; spotMarketIndexes: number[]; oracleInfos: OracleInfo[]; oracleClientCache: OracleClientCache; resubOpts?: ResubOpts; shouldFindAllMarketsAndOracles: boolean; eventEmitter: StrictEventEmitter; stateAccountSubscriber?: AccountSubscriber; perpMarketAccountSubscribers: Map>; perpOracleMap: Map; perpOracleStringMap: Map; spotMarketAccountSubscribers: Map>; spotOracleMap: Map; spotOracleStringMap: Map; oracleSubscribers: Map>; delistedMarketSetting: DelistedMarketSetting; initialPerpMarketAccountData: Map; initialSpotMarketAccountData: Map; initialOraclePriceData: Map; remoteUtil: RemoteUtil; publicAccountInfo: PublicAccountInfo; protected isSubscribing: boolean; protected subscriptionPromise: Promise; protected subscriptionPromiseResolver: (val: boolean) => void; constructor(program: Program, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting, resubOpts?: ResubOpts, commitment?: Commitment); subscribe(): Promise; setInitialData(): Promise; removeInitialData(): void; subscribeToPerpMarketAccounts(): Promise; subscribeToPerpMarketAccount(marketIndex: number, publicKey?: PublicKey): Promise; subscribeToSpotMarketAccounts(): Promise; subscribeToSpotMarketAccount(marketIndex: number, publicKey?: PublicKey): Promise; subscribeToOracles(): Promise; subscribeToOracle(oracleInfo: OracleInfo): Promise; unsubscribeFromMarketAccounts(): Promise; unsubscribeFromSpotMarketAccounts(): Promise; unsubscribeFromOracles(): Promise; fetch(): Promise; unsubscribe(): Promise; addSpotMarket(marketIndex: number): Promise; addPerpMarket(marketIndex: number): Promise; addOracle(oracleInfo: OracleInfo): Promise; setPerpOracleMap(): Promise; setSpotOracleMap(): Promise; handleDelistedMarkets(): Promise; assertIsSubscribed(): void; getStateAccountAndSlot(): DataAndSlot; getMarketAccountAndSlot(marketIndex: number): DataAndSlot | undefined; getMarketAccountsAndSlots(): DataAndSlot[]; getSpotMarketAccountAndSlot(marketIndex: number): DataAndSlot | undefined; getSpotMarketAccountsAndSlots(): DataAndSlot[]; getOraclePriceDataAndSlot(oraclePublicKey: PublicKey | string): DataAndSlot | undefined; getOraclePriceDataAndSlotForPerpMarket(marketIndex: number): DataAndSlot | undefined; getOraclePriceDataAndSlotForSpotMarket(marketIndex: number): DataAndSlot | undefined; }