/**
 * 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 { TrackResponse, TrackSearch, TracksResponse } from '../models';
export interface GetBulkTracksRequest {
    permalink?: Array<string>;
    id?: Array<string>;
}
export interface GetTrackRequest {
    trackId: string;
}
export interface GetTrendingTracksRequest {
    genre?: string;
    time?: GetTrendingTracksTimeEnum;
}
export interface GetUndergroundTrendingTracksRequest {
    offset?: number;
    limit?: number;
}
export interface SearchTracksRequest {
    query: string;
    onlyDownloadable?: string;
}
export interface StreamTrackRequest {
    trackId: string;
    preview?: boolean;
    userSignature?: string;
    userData?: string;
    premiumContentSignature?: string;
    filename?: string;
    skipPlayCount?: boolean;
}
/**
 *
 */
export declare class TracksApi extends runtime.BaseAPI {
    /**
     * @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
     * 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
     * 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
     * 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>>;
    /**
     * 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 type GetTrendingTracksTimeEnum = typeof GetTrendingTracksTimeEnum[keyof typeof GetTrendingTracksTimeEnum];
