/**
 * API
 * Audius V1 API
 *
 * 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 { AccessInfoResponse, PlaylistResponse, PlaylistSearchResult, PlaylistTracksResponse, TrendingPlaylistsResponse } from '../models';
export interface GetBulkPlaylistsRequest {
    userId?: string;
    id?: Array<string>;
}
export interface GetPlaylistRequest {
    playlistId: string;
    userId?: string;
}
export interface GetPlaylistAccessInfoRequest {
    playlistId: string;
    userId?: string;
}
export interface GetPlaylistByHandleAndSlugRequest {
    handle: string;
    slug: string;
    userId?: string;
}
export interface GetPlaylistTracksRequest {
    playlistId: string;
}
export interface GetTrendingPlaylistsRequest {
    time?: GetTrendingPlaylistsTimeEnum;
}
export interface SearchPlaylistsRequest {
    query?: string;
    genre?: Array<string>;
    sortMethod?: SearchPlaylistsSortMethodEnum;
    mood?: Array<string>;
    includePurchaseable?: string;
    hasDownloads?: string;
}
/**
 *
 */
export declare class PlaylistsApi extends runtime.BaseAPI {
    /**
     * @hidden
     * Gets a list of playlists by ID
     */
    getBulkPlaylistsRaw(params: GetBulkPlaylistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PlaylistResponse>>;
    /**
     * Gets a list of playlists by ID
     */
    getBulkPlaylists(params?: GetBulkPlaylistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PlaylistResponse>;
    /**
     * @hidden
     * Get a playlist by ID
     */
    getPlaylistRaw(params: GetPlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PlaylistResponse>>;
    /**
     * Get a playlist by ID
     */
    getPlaylist(params: GetPlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PlaylistResponse>;
    /**
     * @hidden
     * Gets the information necessary to access the playlist and what access the given user has.
     */
    getPlaylistAccessInfoRaw(params: GetPlaylistAccessInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AccessInfoResponse>>;
    /**
     * Gets the information necessary to access the playlist and what access the given user has.
     */
    getPlaylistAccessInfo(params: GetPlaylistAccessInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AccessInfoResponse>;
    /**
     * @hidden
     * Get a playlist by handle and slug
     */
    getPlaylistByHandleAndSlugRaw(params: GetPlaylistByHandleAndSlugRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PlaylistResponse>>;
    /**
     * Get a playlist by handle and slug
     */
    getPlaylistByHandleAndSlug(params: GetPlaylistByHandleAndSlugRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PlaylistResponse>;
    /**
     * @hidden
     * Fetch tracks within a playlist.
     */
    getPlaylistTracksRaw(params: GetPlaylistTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PlaylistTracksResponse>>;
    /**
     * Fetch tracks within a playlist.
     */
    getPlaylistTracks(params: GetPlaylistTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PlaylistTracksResponse>;
    /**
     * @hidden
     * Gets trending playlists for a time period
     */
    getTrendingPlaylistsRaw(params: GetTrendingPlaylistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TrendingPlaylistsResponse>>;
    /**
     * Gets trending playlists for a time period
     */
    getTrendingPlaylists(params?: GetTrendingPlaylistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TrendingPlaylistsResponse>;
    /**
     * @hidden
     * Search for a playlist
     */
    searchPlaylistsRaw(params: SearchPlaylistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PlaylistSearchResult>>;
    /**
     * Search for a playlist
     */
    searchPlaylists(params?: SearchPlaylistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PlaylistSearchResult>;
}
/**
 * @export
 */
export declare const GetTrendingPlaylistsTimeEnum: {
    readonly Week: "week";
    readonly Month: "month";
    readonly Year: "year";
    readonly AllTime: "allTime";
};
export type GetTrendingPlaylistsTimeEnum = typeof GetTrendingPlaylistsTimeEnum[keyof typeof GetTrendingPlaylistsTimeEnum];
/**
 * @export
 */
export declare const SearchPlaylistsSortMethodEnum: {
    readonly Relevant: "relevant";
    readonly Popular: "popular";
    readonly Recent: "recent";
};
export type SearchPlaylistsSortMethodEnum = typeof SearchPlaylistsSortMethodEnum[keyof typeof SearchPlaylistsSortMethodEnum];
