import { FeedUploadOptions } from '@ethersphere/bee-js/dist/src/feed';
import { Reference } from '@ethersphere/swarm-cid';
import { BeeSon } from '@fairdatasociety/beeson';
import { JsonValue } from '@fairdatasociety/beeson/dist/types';
import { FdpStorage } from '@fairdatasociety/fdp-storage';
import { StreamingFeedChunk } from './swarm-feeds/streaming';
export interface FeedSequencerOptions {
    init: number;
    updateInterval: number;
}
/**
 * Feed sequence helper class
 */
export declare class FeedSequencer {
    private fdp;
    topic: string;
    private options;
    private writer;
    private reader;
    constructor(fdp: FdpStorage, topic: string, options: FeedSequencerOptions);
    /**
     * Uploads a beeson block and writes it to a topic
     * @param data beeson block
     * @param options feed upload options
     * @returns feed response
     */
    put(data: BeeSon<JsonValue>, options: FeedUploadOptions): Promise<import("@ethersphere/bee-js").Reference>;
    /**
     * Reads data by swarm reference
     * @param ref swarm reference
     * @returns
     */
    get(ref: Reference): Promise<any>;
    /**
     * Reads latest data
     * @param ref swarm reference
     * @returns
     */
    getLatest(): Promise<any>;
    /**
     * Reads latest data
     * @param ref swarm reference
     * @returns
     */
    getUpdate(at: number): Promise<any>;
    /**
     * Reads latest data
     * @param ref swarm reference
     * @returns
     */
    getUpdates(): Promise<StreamingFeedChunk[]>;
}
