///
///
import { DataAndSlot, BufferAndSlot, AccountSubscriber } from './types';
import { Program } from '@coral-xyz/anchor';
import { AccountInfo, Commitment, Context, PublicKey } from '@solana/web3.js';
export declare class WebSocketAccountSubscriber implements AccountSubscriber {
dataAndSlot?: DataAndSlot;
bufferAndSlot?: BufferAndSlot;
accountName: string;
program: Program;
accountPublicKey: PublicKey;
decodeBufferFn: (buffer: Buffer) => T;
onChange: (data: T) => void;
listenerId?: number;
resubTimeoutMs?: number;
commitment?: Commitment;
isUnsubscribing: boolean;
timeoutId?: NodeJS.Timeout;
receivingData: boolean;
constructor(accountName: string, program: Program, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => T, resubTimeoutMs?: number, commitment?: Commitment);
subscribe(onChange: (data: T) => void): Promise;
setData(data: T, slot?: number): void;
private setTimeout;
fetch(): Promise;
handleRpcResponse(context: Context, accountInfo?: AccountInfo): void;
decodeBuffer(buffer: Buffer): T;
unsubscribe(onResub?: boolean): Promise;
}