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