/// <reference types="node" />
import { DataAndSlot, UserStatsAccountEvents, UserStatsAccountSubscriber } from './types';
import { PublicKey } from '@solana/web3.js';
import StrictEventEmitter from 'strict-event-emitter-types';
import { EventEmitter } from 'events';
import { UserStatsAccount } from '../types';
/**
 * Basic implementation of UserStatsAccountSubscriber. It will only take in UserStatsAccount
 * data during initialization and will not fetch or subscribe to updates.
 */
export declare class BasicUserStatsAccountSubscriber implements UserStatsAccountSubscriber {
    isSubscribed: boolean;
    eventEmitter: StrictEventEmitter<EventEmitter, UserStatsAccountEvents>;
    userStatsAccountPublicKey: PublicKey;
    callbackId?: string;
    errorCallbackId?: string;
    userStats: DataAndSlot<UserStatsAccount>;
    constructor(userStatsAccountPublicKey: PublicKey, data?: UserStatsAccount, slot?: number);
    subscribe(_userStatsAccount?: UserStatsAccount): Promise<boolean>;
    addToAccountLoader(): Promise<void>;
    fetch(): Promise<void>;
    doesAccountExist(): boolean;
    unsubscribe(): Promise<void>;
    assertIsSubscribed(): void;
    getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount>;
    updateData(userStatsAccount: UserStatsAccount, slot: number): void;
}
//# sourceMappingURL=basicUserStatsAccountSubscriber.d.ts.map