/**
 * 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 { TopListener, TrackInspect, TrackResponse, TrackSearch, TracksResponse } from '../models';
export interface DownloadTrackRequest {
    trackId: string;
    userSignature?: string;
    userData?: string;
    nftAccessSignature?: string;
    original?: boolean;
    filename?: string;
}
export interface GetBulkTracksRequest {
    permalink?: Array<string>;
    id?: Array<string>;
}
export interface GetTrackRequest {
    trackId: string;
}
export interface GetTrackTopListenersRequest {
    trackId: string;
    offset?: number;
    limit?: number;
    userId?: string;
}
export interface GetTrendingTracksRequest {
    genre?: string;
    time?: GetTrendingTracksTimeEnum;
}
export interface GetUndergroundTrendingTracksRequest {
    offset?: number;
    limit?: number;
}
export interface InspectTrackRequest {
    trackId: string;
    original?: boolean;
}
export interface SearchTracksRequest {
    query: string;
    onlyDownloadable?: string;
}
export interface StreamTrackRequest {
    trackId: string;
    preview?: boolean;
    userSignature?: string;
    userData?: string;
    nftAccessSignature?: string;
    skipPlayCount?: boolean;
}
/**
 *
 */
export declare class TracksApi extends runtime.BaseAPI {
    /**
     * @hidden
     * Download an original or mp3 track
     * Download the original or MP3 file of a track
     */
    downloadTrackRaw(params: DownloadTrackRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
    /**
     * Download an original or mp3 track
     * Download the original or MP3 file of a track
     */
    downloadTrack(params: DownloadTrackRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
    /**
     * @hidden
     * Gets a list of tracks using their IDs or permalinks
     */
    getBulkTracksRaw(params: GetBulkTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TracksResponse>>;
    /**
     * Gets a list of tracks using their IDs or permalinks
     */
    getBulkTracks(params?: GetBulkTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TracksResponse>;
    /**
     * @hidden
     * Gets a track by ID
     */
    getTrackRaw(params: GetTrackRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TrackResponse>>;
    /**
     * Gets a track by ID
     */
    getTrack(params: GetTrackRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TrackResponse>;
    /**
     * @hidden
     * Get the users that have listened to a track the most
     */
    getTrackTopListenersRaw(params: GetTrackTopListenersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TopListener>>;
    /**
     * Get the users that have listened to a track the most
     */
    getTrackTopListeners(params: GetTrackTopListenersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TopListener>;
    /**
     * @hidden
     * Gets the top 100 trending (most popular) tracks on Audius
     */
    getTrendingTracksRaw(params: GetTrendingTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TracksResponse>>;
    /**
     * Gets the top 100 trending (most popular) tracks on Audius
     */
    getTrendingTracks(params?: GetTrendingTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TracksResponse>;
    /**
     * @hidden
     * Gets the top 100 trending underground tracks on Audius
     */
    getUndergroundTrendingTracksRaw(params: GetUndergroundTrendingTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TracksResponse>>;
    /**
     * Gets the top 100 trending underground tracks on Audius
     */
    getUndergroundTrendingTracks(params?: GetUndergroundTrendingTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TracksResponse>;
    /**
     * @hidden
     * Inspect a track
     * Inspects the details of the file for a track
     */
    inspectTrackRaw(params: InspectTrackRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TrackInspect>>;
    /**
     * Inspect a track
     * Inspects the details of the file for a track
     */
    inspectTrack(params: InspectTrackRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TrackInspect>;
    /**
     * @hidden
     * Search for a track or tracks
     */
    searchTracksRaw(params: SearchTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TrackSearch>>;
    /**
     * Search for a track or tracks
     */
    searchTracks(params: SearchTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TrackSearch>;
    /**
     * @hidden
     * Stream an mp3 track This endpoint accepts the Range header for streaming. https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests
     * Get the streamable MP3 file of a track
     */
    streamTrackRaw(params: StreamTrackRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
    /**
     * Stream an mp3 track This endpoint accepts the Range header for streaming. https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests
     * Get the streamable MP3 file of a track
     */
    streamTrack(params: StreamTrackRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
}
/**
 * @export
 */
export declare const GetTrendingTracksTimeEnum: {
    readonly Week: "week";
    readonly Month: "month";
    readonly Year: "year";
    readonly AllTime: "allTime";
};
export declare type GetTrendingTracksTimeEnum = typeof GetTrendingTracksTimeEnum[keyof typeof GetTrendingTracksTimeEnum];
