import { PlaylistPreview } from "../../schemas/playlist";
import type { EnsAddress, EthAddress, FeedInfo, Reference } from "../../clients";
import type { ReaderOptions } from "../base-reader";
interface PlaylistReaderOptions extends ReaderOptions {
}
interface PlaylistReaderDownloadOptions {
    mode: "preview" | "details" | "full";
    signal?: AbortSignal;
    prefetchedPreview?: PlaylistPreview;
}
export declare const createPlaylistTopicName: (id: string) => string;
export type PlaylistIdentification = {
    id: string;
    owner: EthAddress | EnsAddress;
} | {
    rootManifest: Reference;
};
export declare class PlaylistReader {
    private rootManifest;
    private id;
    private owner;
    private beeClient;
    static channelPlaylistId: "Channel";
    static savedPlaylistId: "Saved";
    constructor(identification: PlaylistIdentification, opts: PlaylistReaderOptions);
    download(opts: PlaylistReaderDownloadOptions): Promise<{
        reference: Reference;
        preview: {
            type: "private" | "protected" | "public";
            name: string;
            id: string;
            createdAt: Date;
            updatedAt: Date;
            thumb: {
                path: string;
                blurhash: string;
            } | null;
            owner: `0x${string}`;
            rootManifest: string & {
                readonly length: 64;
            };
            passwordHint?: string | undefined;
        };
        details: {
            videos: {
                reference: string & {
                    readonly length: 64;
                };
                title: string;
                addedAt: Date;
                publishedAt?: Date | undefined;
            }[];
            name?: string | undefined;
            description?: string | undefined;
        };
        encryptedData: string | null | undefined;
    }>;
    getPlaylistFeed(): Promise<FeedInfo<"epoch">>;
}
export {};
//# sourceMappingURL=reader.d.ts.map