///
///
import { DriftClient } from '../driftClient';
import { UserAccount } from '../types';
import { Commitment } from '@solana/web3.js';
import { Buffer } from 'buffer';
import { DLOB } from '../dlob/DLOB';
import { OrderSubscriberConfig, OrderSubscriberEvents } from './types';
import { PollingSubscription } from './PollingSubscription';
import { WebsocketSubscription } from './WebsocketSubscription';
import StrictEventEmitter from 'strict-event-emitter-types';
import { EventEmitter } from 'events';
export declare class OrderSubscriber {
driftClient: DriftClient;
usersAccounts: Map;
subscription: PollingSubscription | WebsocketSubscription;
commitment: Commitment;
eventEmitter: StrictEventEmitter;
fetchPromise?: Promise;
fetchPromiseResolver: () => void;
mostRecentSlot: number;
decodeFn: (name: string, data: Buffer) => UserAccount;
constructor(config: OrderSubscriberConfig);
subscribe(): Promise;
fetch(): Promise;
tryUpdateUserAccount(key: string, dataType: 'raw' | 'decoded', data: string[] | UserAccount, slot: number): void;
getDLOB(slot: number): Promise;
getSlot(): number;
unsubscribe(): Promise;
}