import { FactEnvelope, Storage } from "../storage";
import { UserIdentity } from "../user-identity";
type BookmarkListener = (feed: string, bookmark: string) => void;
export declare class WsGraphClient {
    private readonly getWsUrl;
    private readonly store;
    private readonly onBookmark;
    private readonly onErrorGlobal;
    private readonly getUserIdentity?;
    private readonly onFactsAdded?;
    private socket;
    private readonly activeFeeds;
    private reconnectTimer;
    private reconnectAttempt;
    private connecting;
    private hasEverConnected;
    private pendingLines;
    private waitingResolver;
    private router;
    private lastSavePromise;
    constructor(getWsUrl: () => Promise<string>, store: Storage, onBookmark: BookmarkListener, onErrorGlobal: (err: Error) => void, getUserIdentity?: (() => Promise<UserIdentity | null>) | undefined, onFactsAdded?: ((envelopes: FactEnvelope[]) => Promise<void>) | undefined);
    subscribe(feed: string, bookmark: string, feedRefreshIntervalSeconds: number): () => void;
    private ensureConnected;
    private openSocket;
    private startGraphReader;
    private pumpWaiting;
    private readLine;
    private scheduleReconnect;
    private sendSub;
    private sendUnsub;
    private sendFramed;
}
export {};
//# sourceMappingURL=ws-graph-client.d.ts.map