/// <reference types="node" />
import { ConstituentAccountEvents, ConstituentAccountSubscriber } from '../accounts/types';
import { DriftProgram } from '../config';
import StrictEventEmitter from 'strict-event-emitter-types';
import { EventEmitter } from 'events';
import { Commitment, MemcmpFilter } from '@solana/web3.js';
import { ConstituentAccount } from '../types';
import { WebSocketProgramAccountSubscriber } from '../accounts/webSocketProgramAccountSubscriber';
import { ConstituentMap } from './constituentMap';
export declare class WebSocketConstituentAccountSubscriber implements ConstituentAccountSubscriber {
    isSubscribed: boolean;
    resubTimeoutMs?: number;
    commitment?: Commitment;
    program: DriftProgram;
    eventEmitter: StrictEventEmitter<EventEmitter, ConstituentAccountEvents>;
    constituentDataAccountSubscriber: WebSocketProgramAccountSubscriber<ConstituentAccount>;
    constituentMap: ConstituentMap;
    private additionalFilters?;
    constructor(constituentMap: ConstituentMap, program: DriftProgram, resubTimeoutMs?: number, commitment?: Commitment, additionalFilters?: MemcmpFilter[]);
    subscribe(): Promise<boolean>;
    sync(): Promise<void>;
    unsubscribe(): Promise<void>;
    assertIsSubscribed(): void;
}
