import { GrpcConfigs, ResubOpts, UserAccountSubscriber } from './types';
import { PublicKey } from '@solana/web3.js';
import { UserAccount } from '../types';
import { DriftProgram } from '../config';
import { grpcMultiAccountSubscriber } from './grpcMultiAccountSubscriber';
export declare class grpcMultiUserAccountSubscriber {
    private program;
    private multiSubscriber;
    private userData;
    private listeners;
    private keyToPk;
    private pendingAddKeys;
    private debounceTimer?;
    private debounceMs;
    private isMultiSubscribed;
    private userAccountSubscribers;
    private grpcConfigs;
    resubOpts?: ResubOpts;
    private handleAccountChange;
    constructor(program: DriftProgram, grpcConfigs: GrpcConfigs, resubOpts?: ResubOpts, multiSubscriber?: grpcMultiAccountSubscriber<UserAccount>);
    subscribe(): Promise<void>;
    forUser(userAccountPublicKey: PublicKey): UserAccountSubscriber;
    private scheduleFlush;
    private flushPending;
}
//# sourceMappingURL=grpcMultiUserAccountSubscriber.d.ts.map