///
import { BulkAccountLoader, DataAndSlot, PublicKey } from '@drift-labs/sdk';
import { Program } from '@coral-xyz/anchor';
import StrictEventEmitter from 'strict-event-emitter-types';
import { EventEmitter } from 'events';
import { DriftCompetitions } from '../types/drift_competitions';
import { DriftCompetitionsProgramAccountBaseEvents, DriftCompetitionsProgramAccountSubscriber } from '../types/types';
export declare abstract class PollingProgramAccountSubscriberBase implements DriftCompetitionsProgramAccountSubscriber {
protected program: Program;
protected _isSubscribed: boolean;
protected pubkey: PublicKey;
protected account?: DataAndSlot;
protected _eventEmitter: StrictEventEmitter;
protected accountLoader: BulkAccountLoader;
protected callbackId: string | null;
protected errorCallbackId: string | null;
constructor(program: Program, accountPubkey: PublicKey, accountLoader: BulkAccountLoader);
get isSubscribed(): boolean;
get eventEmitter(): StrictEventEmitter;
subscribe(): Promise;
unsubscribe(): Promise;
fetchIfUnloaded(): Promise;
assertIsSubscribed(): void;
getAccountAndSlot(): DataAndSlot;
abstract addToAccountLoader(): Promise;
abstract fetch(): Promise;
abstract updateData(account: Account, slot: number): void;
}