import type { AuthService, StorageService } from '../../services';
import type { EntityManagerService, AdvancedOptions } from '../../services/EntityManager/types';
import type { LoggerService } from '../../services/Logger';
import type { Configuration } from '../generated/default';
import { DeleteAlbumRequest, FavoriteAlbumRequest, getAlbumRequest, getAlbumTracksRequest, RepostAlbumRequest, UnfavoriteAlbumRequest, UnrepostAlbumRequest, UpdateAlbumRequest, UploadAlbumRequest } from './types';
export declare class AlbumsApi {
    private readonly playlistsApi;
    constructor(configuration: Configuration, storage: StorageService, entityManager: EntityManagerService, auth: AuthService, logger: LoggerService);
    getAlbum(params: getAlbumRequest): Promise<import("../generated/default").PlaylistResponse>;
    getAlbumTracks(params: getAlbumTracksRequest): Promise<import("../generated/default").PlaylistTracksResponse>;
    /** @hidden
     * Upload an album
     * Uploads the specified tracks and combines them into an album
     */
    uploadAlbum(params: UploadAlbumRequest, advancedOptions?: AdvancedOptions): Promise<{
        blockHash: string;
        blockNumber: number;
        albumId: string | null;
    }>;
    /** @hidden
     * Update an album
     */
    updateAlbum(params: UpdateAlbumRequest, advancedOptions?: AdvancedOptions): Promise<Pick<import("web3-core").TransactionReceipt, "blockHash" | "blockNumber">>;
    /** @hidden
     * Delete an album
     */
    deleteAlbum(params: DeleteAlbumRequest, advancedOptions?: AdvancedOptions): Promise<Pick<import("web3-core").TransactionReceipt, "blockHash" | "blockNumber">>;
    /** @hidden
     * Favorite an album
     */
    favoriteAlbum(params: FavoriteAlbumRequest, advancedOptions?: AdvancedOptions): Promise<Pick<import("web3-core").TransactionReceipt, "blockHash" | "blockNumber">>;
    /** @hidden
     * Unfavorite an album
     */
    unfavoriteAlbum(params: UnfavoriteAlbumRequest, advancedOptions?: AdvancedOptions): Promise<Pick<import("web3-core").TransactionReceipt, "blockHash" | "blockNumber">>;
    /** @hidden
     * Repost an album
     */
    repostAlbum(params: RepostAlbumRequest, advancedOptions?: AdvancedOptions): Promise<Pick<import("web3-core").TransactionReceipt, "blockHash" | "blockNumber">>;
    /** @hidden
     * Unrepost an album
     */
    unrepostAlbum(params: UnrepostAlbumRequest, advancedOptions?: AdvancedOptions): Promise<Pick<import("web3-core").TransactionReceipt, "blockHash" | "blockNumber">>;
}
