/// <reference types="node" />
import { DataAndSlot, AccountSubscriber, UserStatsAccountSubscriber, UserStatsAccountEvents, ResubOpts } 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 { UserStatsAccount } from '../types';
export declare class WebSocketUserStatsAccountSubscriber implements UserStatsAccountSubscriber {
    isSubscribed: boolean;
    resubOpts?: ResubOpts;
    commitment?: Commitment;
    program: Program;
    eventEmitter: StrictEventEmitter<EventEmitter, UserStatsAccountEvents>;
    userStatsAccountPublicKey: PublicKey;
    userStatsAccountSubscriber: AccountSubscriber<UserStatsAccount>;
    constructor(program: Program, userStatsAccountPublicKey: PublicKey, resubOpts?: ResubOpts, commitment?: Commitment);
    subscribe(userStatsAccount?: UserStatsAccount): Promise<boolean>;
    fetch(): Promise<void>;
    unsubscribe(): Promise<void>;
    assertIsSubscribed(): void;
    getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount>;
}
//# sourceMappingURL=webSocketUserStatsAccountSubsriber.d.ts.map