///
import { DataAndSlot, UserAccountEvents, UserAccountSubscriber } from './types';
import { PublicKey } from '@solana/web3.js';
import StrictEventEmitter from 'strict-event-emitter-types';
import { EventEmitter } from 'events';
import { UserAccount } from '../types';
/**
* Basic implementation of UserAccountSubscriber. It will only take in UserAccount
* data during initialization and will not fetch or subscribe to updates.
*/
export declare class BasicUserAccountSubscriber implements UserAccountSubscriber {
isSubscribed: boolean;
eventEmitter: StrictEventEmitter;
userAccountPublicKey: PublicKey;
callbackId?: string;
errorCallbackId?: string;
user: DataAndSlot;
constructor(userAccountPublicKey: PublicKey, data?: UserAccount, slot?: number);
subscribe(_userAccount?: UserAccount): Promise;
addToAccountLoader(): Promise;
fetch(): Promise;
doesAccountExist(): boolean;
unsubscribe(): Promise;
assertIsSubscribed(): void;
getUserAccountAndSlot(): DataAndSlot;
updateData(userAccount: UserAccount, slot: number): void;
}