/**
 * API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 1.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import * as runtime from '../runtime';
import type { FollowingResponse, FullPlaylistResponse, FullPlaylistTracksResponse, FullTrendingPlaylistsResponse } from '../models';
export interface GetPlaylistRequest {
    playlistId: string;
    userId?: string;
}
export interface GetPlaylistByHandleAndSlugRequest {
    handle: string;
    slug: string;
    userId?: string;
}
export interface GetPlaylistTracksRequest {
    playlistId: string;
}
export interface GetTrendingPlaylistsRequest {
    offset?: number;
    limit?: number;
    userId?: string;
    time?: GetTrendingPlaylistsTimeEnum;
}
export interface GetTrendingPlaylistsWithVersionRequest {
    version: string;
    offset?: number;
    limit?: number;
    userId?: string;
    time?: GetTrendingPlaylistsWithVersionTimeEnum;
}
export interface GetUsersFromPlaylistFavoritesRequest {
    playlistId: string;
    offset?: number;
    limit?: number;
    userId?: string;
}
export interface GetUsersFromPlaylistRepostsRequest {
    playlistId: string;
    offset?: number;
    limit?: number;
    userId?: string;
}
/**
 *
 */
export declare class PlaylistsApi extends runtime.BaseAPI {
    /**
     * @hidden
     * Get a playlist by ID
     */
    getPlaylistRaw(params: GetPlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullPlaylistResponse>>;
    /**
     * Get a playlist by ID
     */
    getPlaylist(params: GetPlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullPlaylistResponse>;
    /**
     * @hidden
     * Get a playlist by handle and slug
     */
    getPlaylistByHandleAndSlugRaw(params: GetPlaylistByHandleAndSlugRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullPlaylistResponse>>;
    /**
     * Get a playlist by handle and slug
     */
    getPlaylistByHandleAndSlug(params: GetPlaylistByHandleAndSlugRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullPlaylistResponse>;
    /**
     * @hidden
     * Fetch tracks within a playlist.
     */
    getPlaylistTracksRaw(params: GetPlaylistTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullPlaylistTracksResponse>>;
    /**
     * Fetch tracks within a playlist.
     */
    getPlaylistTracks(params: GetPlaylistTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullPlaylistTracksResponse>;
    /**
     * @hidden
     * Returns trending playlists for a time period
     */
    getTrendingPlaylistsRaw(params: GetTrendingPlaylistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullTrendingPlaylistsResponse>>;
    /**
     * Returns trending playlists for a time period
     */
    getTrendingPlaylists(params?: GetTrendingPlaylistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullTrendingPlaylistsResponse>;
    /**
     * @hidden
     * Returns trending playlists for a time period based on the given trending version
     */
    getTrendingPlaylistsWithVersionRaw(params: GetTrendingPlaylistsWithVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullTrendingPlaylistsResponse>>;
    /**
     * Returns trending playlists for a time period based on the given trending version
     */
    getTrendingPlaylistsWithVersion(params: GetTrendingPlaylistsWithVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullTrendingPlaylistsResponse>;
    /**
     * @hidden
     * Get users that favorited a playlist
     */
    getUsersFromPlaylistFavoritesRaw(params: GetUsersFromPlaylistFavoritesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FollowingResponse>>;
    /**
     * Get users that favorited a playlist
     */
    getUsersFromPlaylistFavorites(params: GetUsersFromPlaylistFavoritesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FollowingResponse>;
    /**
     * @hidden
     * Get users that reposted a playlist
     */
    getUsersFromPlaylistRepostsRaw(params: GetUsersFromPlaylistRepostsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FollowingResponse>>;
    /**
     * Get users that reposted a playlist
     */
    getUsersFromPlaylistReposts(params: GetUsersFromPlaylistRepostsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FollowingResponse>;
}
/**
 * @export
 */
export declare const GetTrendingPlaylistsTimeEnum: {
    readonly Week: "week";
    readonly Month: "month";
    readonly Year: "year";
    readonly AllTime: "allTime";
};
export declare type GetTrendingPlaylistsTimeEnum = typeof GetTrendingPlaylistsTimeEnum[keyof typeof GetTrendingPlaylistsTimeEnum];
/**
 * @export
 */
export declare const GetTrendingPlaylistsWithVersionTimeEnum: {
    readonly Week: "week";
    readonly Month: "month";
    readonly Year: "year";
    readonly AllTime: "allTime";
};
export declare type GetTrendingPlaylistsWithVersionTimeEnum = typeof GetTrendingPlaylistsWithVersionTimeEnum[keyof typeof GetTrendingPlaylistsWithVersionTimeEnum];
