import type { BeeClient } from ".";
import type { RequestOptions } from "../types";
import type { EthAddress, FeedInfo, FeedType, FeedUpdateOptions, FeedUploadOptions, Reference, RequestUploadOptions } from "./types";
export declare class Feed {
    private instance;
    constructor(instance: BeeClient);
    makeFeed<T extends FeedType>(topicName: string, owner: EthAddress, type?: T): FeedInfo<T>;
    makeReader<T extends FeedType>(feed: FeedInfo<T>): {
        download(options?: FeedUpdateOptions): Promise<{
            reference: Reference;
        }>;
        topic: string;
        owner: string;
        type: T;
    };
    makeWriter<T extends FeedType>(feed: FeedInfo<T>): {
        upload: (reference: string, options: FeedUploadOptions) => Promise<{
            reference: Reference;
            index: string;
        }>;
    };
    createRootManifest<T extends FeedType>(feed: FeedInfo<T>, options: FeedUploadOptions): Promise<Reference>;
    makeRootManifest<T extends FeedType>(feed: FeedInfo<T>): Promise<{
        reference: Reference;
        save: (options: RequestUploadOptions) => Promise<void>;
    }>;
    parseFeedFromRootManifest(reference: Reference, opts?: RequestOptions): Promise<FeedInfo<any>>;
    fetchLatestFeedUpdate<T extends FeedType>(feed: FeedInfo<T>): Promise<{
        feedIndex: string;
        feedIndexNext: string;
        reference: Reference;
    }>;
    findNextIndex<T extends FeedType>(feed: FeedInfo<T>): Promise<string>;
    private readFeedUpdateHeaders;
    private makeFeedIdentifier;
    private hashFeedIdentifier;
    private makeSequentialFeedIdentifier;
    private makeFeedIndexBytes;
}
//# sourceMappingURL=feeds.d.ts.map