///
///
///
///
import { WebSocketProgramAccountSubscriber } from '../accounts/webSocketProgramAccountSubscriber';
import { SignedMsgOrderId, SignedMsgUserOrdersAccount } from '../types';
import { Commitment, PublicKey } from '@solana/web3.js';
import { ResubOpts } from '../accounts/types';
import { DriftClient } from '../driftClient';
import StrictEventEmitter from 'strict-event-emitter-types';
import { EventEmitter } from 'events';
export interface SignedMsgUserOrdersAccountSubscriberEvents {
onAccountUpdate: (activeSignedMsgOrderIds: SignedMsgOrderId[], authorityPubkey: PublicKey, slot: number) => void;
newSignedMsgOrderIds: (newSignedMsgOrderIds: SignedMsgOrderId[], authorityPubkey: PublicKey, slot: number) => void;
}
export declare class SignedMsgUserOrdersAccountSubscriber {
protected driftClient: DriftClient;
protected commitment: Commitment;
protected resubOpts?: ResubOpts;
protected resyncTimeoutId?: NodeJS.Timeout;
protected resyncIntervalMs?: number;
protected decodeFn: (name: string, data: Buffer) => SignedMsgUserOrdersAccount;
signedMsgUserOrderAccounts: Map;
mostRecentSlot: number;
fetchPromise?: Promise;
fetchPromiseResolver: () => void;
protected subscriber: WebSocketProgramAccountSubscriber;
eventEmitter: StrictEventEmitter;
constructor({ driftClient, commitment, resubOpts, decodeFn, resyncIntervalMs, }: {
driftClient: DriftClient;
commitment?: Commitment;
resubOpts?: ResubOpts;
decodeFn?: (name: string, data: Buffer) => SignedMsgUserOrdersAccount;
resyncIntervalMs?: number;
});
subscribe(): Promise;
fetch(): Promise;
tryUpdateSignedMsgUserOrdersAccount(data: Buffer | SignedMsgUserOrdersAccount, dataType: 'buffer' | 'decoded', slot: number, skipEventEmitting?: boolean): void;
unsubscribe(): Promise;
}
//# sourceMappingURL=signedMsgUserAccountSubscriber.d.ts.map