/**
 * 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 { FullTopListener, FullTrackResponse, FullTracksResponse, RemixesResponseFull, RemixingResponse, StemsResponse, TrackFavoritesResponseFull, TrackRepostsResponseFull, TrendingIdsResponse } from '../models';
export interface GetBulkTracksRequest {
    userId?: string;
    permalink?: Array<string>;
    id?: Array<string>;
}
export interface GetFeelingLuckyTracksRequest {
    userId?: string;
    limit?: number;
    withUsers?: boolean;
    minFollowers?: number;
}
export interface GetGatedTrackSignaturesRequest {
    userId: string;
    trackIds?: Array<number>;
    tokenIds?: Array<string>;
}
export interface GetMostLovedTracksRequest {
    userId?: string;
    limit?: number;
    withUsers?: boolean;
}
export interface GetRecommendedTracksRequest {
    limit?: number;
    genre?: string;
    time?: GetRecommendedTracksTimeEnum;
    exclusionList?: Array<number>;
    userId?: string;
}
export interface GetRecommendedTracksWithVersionRequest {
    version: string;
    limit?: number;
    genre?: string;
    time?: GetRecommendedTracksWithVersionTimeEnum;
    exclusionList?: Array<number>;
    userId?: string;
}
export interface GetRemixableTracksRequest {
    limit?: number;
    userId?: string;
    withUsers?: boolean;
}
export interface GetTrackRequest {
    trackId: string;
    userId?: string;
}
export interface GetTrackRemixParentsRequest {
    trackId: string;
    offset?: number;
    limit?: number;
    userId?: string;
}
export interface GetTrackRemixesRequest {
    trackId: string;
    offset?: number;
    limit?: number;
    userId?: string;
}
export interface GetTrackStemsRequest {
    trackId: string;
}
export interface GetTrackTopListenersRequest {
    trackId: string;
    offset?: number;
    limit?: number;
    userId?: string;
}
export interface GetTrendingTrackIDsRequest {
    genre?: string;
}
export interface GetTrendingTracksRequest {
    offset?: number;
    limit?: number;
    userId?: string;
    genre?: string;
    time?: GetTrendingTracksTimeEnum;
}
export interface GetTrendingTracksIDsWithVersionRequest {
    version: string;
    genre?: string;
}
export interface GetTrendingTracksWithVersionRequest {
    version: string;
    offset?: number;
    limit?: number;
    userId?: string;
    genre?: string;
    time?: GetTrendingTracksWithVersionTimeEnum;
}
export interface GetTrendingUSDCPurchaseTracksRequest {
    offset?: number;
    limit?: number;
    userId?: string;
    genre?: string;
    time?: GetTrendingUSDCPurchaseTracksTimeEnum;
}
export interface GetTrendingUSDCPurchaseTracksWithVersionRequest {
    version: string;
    offset?: number;
    limit?: number;
    userId?: string;
    genre?: string;
    time?: GetTrendingUSDCPurchaseTracksWithVersionTimeEnum;
}
export interface GetUnderTheRadarTracksRequest {
    offset?: number;
    limit?: number;
    userId?: string;
    filter?: GetUnderTheRadarTracksFilterEnum;
    tracksOnly?: boolean;
    withUsers?: boolean;
}
export interface GetUndergroundTrendingTracksRequest {
    offset?: number;
    limit?: number;
    userId?: string;
}
export interface GetUndergroundTrendingTracksWithVersionRequest {
    version: string;
    offset?: number;
    limit?: number;
    userId?: string;
}
export interface GetUsersFromFavoritesRequest {
    trackId: string;
    offset?: number;
    limit?: number;
    userId?: string;
}
export interface GetUsersFromRepostsRequest {
    trackId: string;
    offset?: number;
    limit?: number;
    userId?: string;
}
/**
 *
 */
export declare class TracksApi extends runtime.BaseAPI {
    /**
     * @hidden
     * Gets the tracks found on the \"Best New Releases\" smart playlist
     */
    bestNewReleasesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullTracksResponse>>;
    /**
     * Gets the tracks found on the \"Best New Releases\" smart playlist
     */
    bestNewReleases(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullTracksResponse>;
    /**
     * @hidden
     * Gets a list of tracks using their IDs or permalinks
     */
    getBulkTracksRaw(params: GetBulkTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullTracksResponse>>;
    /**
     * Gets a list of tracks using their IDs or permalinks
     */
    getBulkTracks(params?: GetBulkTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullTracksResponse>;
    /**
     * @hidden
     * Gets random tracks found on the \"Feeling Lucky\" smart playlist
     */
    getFeelingLuckyTracksRaw(params: GetFeelingLuckyTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullTracksResponse>>;
    /**
     * Gets random tracks found on the \"Feeling Lucky\" smart playlist
     */
    getFeelingLuckyTracks(params?: GetFeelingLuckyTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullTracksResponse>;
    /**
     * @hidden
     * Gets gated track signatures for passed in gated track ids
     */
    getGatedTrackSignaturesRaw(params: GetGatedTrackSignaturesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
    /**
     * Gets gated track signatures for passed in gated track ids
     */
    getGatedTrackSignatures(params: GetGatedTrackSignaturesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
    /**
     * @hidden
     * Gets the tracks found on the \"Most Loved\" smart playlist
     */
    getMostLovedTracksRaw(params: GetMostLovedTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullTracksResponse>>;
    /**
     * Gets the tracks found on the \"Most Loved\" smart playlist
     */
    getMostLovedTracks(params?: GetMostLovedTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullTracksResponse>;
    /**
     * @hidden
     * Get recommended tracks
     */
    getRecommendedTracksRaw(params: GetRecommendedTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullTracksResponse>>;
    /**
     * Get recommended tracks
     */
    getRecommendedTracks(params?: GetRecommendedTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullTracksResponse>;
    /**
     * @hidden
     * Get recommended tracks using the given trending strategy version
     */
    getRecommendedTracksWithVersionRaw(params: GetRecommendedTracksWithVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullTracksResponse>>;
    /**
     * Get recommended tracks using the given trending strategy version
     */
    getRecommendedTracksWithVersion(params: GetRecommendedTracksWithVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullTracksResponse>;
    /**
     * @hidden
     * Gets a list of tracks that have stems available for remixing
     */
    getRemixableTracksRaw(params: GetRemixableTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullTrackResponse>>;
    /**
     * Gets a list of tracks that have stems available for remixing
     */
    getRemixableTracks(params?: GetRemixableTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullTrackResponse>;
    /**
     * @hidden
     * Gets a track by ID.
     */
    getTrackRaw(params: GetTrackRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullTrackResponse>>;
    /**
     * Gets a track by ID.
     */
    getTrack(params: GetTrackRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullTrackResponse>;
    /**
     * @hidden
     * Gets all the tracks that the given track remixes
     */
    getTrackRemixParentsRaw(params: GetTrackRemixParentsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RemixingResponse>>;
    /**
     * Gets all the tracks that the given track remixes
     */
    getTrackRemixParents(params: GetTrackRemixParentsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RemixingResponse>;
    /**
     * @hidden
     * Get all tracks that remix the given track
     */
    getTrackRemixesRaw(params: GetTrackRemixesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RemixesResponseFull>>;
    /**
     * Get all tracks that remix the given track
     */
    getTrackRemixes(params: GetTrackRemixesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RemixesResponseFull>;
    /**
     * @hidden
     * Get the remixable stems of a track
     */
    getTrackStemsRaw(params: GetTrackStemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<StemsResponse>>;
    /**
     * Get the remixable stems of a track
     */
    getTrackStems(params: GetTrackStemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<StemsResponse>;
    /**
     * @hidden
     * Get the users that have listened to a track the most
     */
    getTrackTopListenersRaw(params: GetTrackTopListenersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullTopListener>>;
    /**
     * Get the users that have listened to a track the most
     */
    getTrackTopListeners(params: GetTrackTopListenersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullTopListener>;
    /**
     * @hidden
     * Gets the track IDs of the top trending tracks on Audius
     */
    getTrendingTrackIDsRaw(params: GetTrendingTrackIDsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TrendingIdsResponse>>;
    /**
     * Gets the track IDs of the top trending tracks on Audius
     */
    getTrendingTrackIDs(params?: GetTrendingTrackIDsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TrendingIdsResponse>;
    /**
     * @hidden
     * Gets the top 100 trending (most popular) tracks on Audius
     */
    getTrendingTracksRaw(params: GetTrendingTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullTracksResponse>>;
    /**
     * Gets the top 100 trending (most popular) tracks on Audius
     */
    getTrendingTracks(params?: GetTrendingTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullTracksResponse>;
    /**
     * @hidden
     * Gets the track IDs of the top trending tracks on Audius based on the given trending strategy version
     */
    getTrendingTracksIDsWithVersionRaw(params: GetTrendingTracksIDsWithVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TrendingIdsResponse>>;
    /**
     * Gets the track IDs of the top trending tracks on Audius based on the given trending strategy version
     */
    getTrendingTracksIDsWithVersion(params: GetTrendingTracksIDsWithVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TrendingIdsResponse>;
    /**
     * @hidden
     * Gets the top 100 trending (most popular) tracks on Audius using a given trending strategy version
     */
    getTrendingTracksWithVersionRaw(params: GetTrendingTracksWithVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullTracksResponse>>;
    /**
     * Gets the top 100 trending (most popular) tracks on Audius using a given trending strategy version
     */
    getTrendingTracksWithVersion(params: GetTrendingTracksWithVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullTracksResponse>;
    /**
     * @hidden
     * Gets the top trending (most popular) USDC purchase tracks on Audius
     */
    getTrendingUSDCPurchaseTracksRaw(params: GetTrendingUSDCPurchaseTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullTracksResponse>>;
    /**
     * Gets the top trending (most popular) USDC purchase tracks on Audius
     */
    getTrendingUSDCPurchaseTracks(params?: GetTrendingUSDCPurchaseTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullTracksResponse>;
    /**
     * @hidden
     * Gets the top trending (most popular) USDC purchase tracks on Audius using a given trending strategy version
     */
    getTrendingUSDCPurchaseTracksWithVersionRaw(params: GetTrendingUSDCPurchaseTracksWithVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullTracksResponse>>;
    /**
     * Gets the top trending (most popular) USDC purchase tracks on Audius using a given trending strategy version
     */
    getTrendingUSDCPurchaseTracksWithVersion(params: GetTrendingUSDCPurchaseTracksWithVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullTracksResponse>;
    /**
     * @hidden
     * Gets the tracks found on the \"Under the Radar\" smart playlist
     */
    getUnderTheRadarTracksRaw(params: GetUnderTheRadarTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullTracksResponse>>;
    /**
     * Gets the tracks found on the \"Under the Radar\" smart playlist
     */
    getUnderTheRadarTracks(params?: GetUnderTheRadarTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullTracksResponse>;
    /**
     * @hidden
     * Gets the top 100 trending underground tracks on Audius
     */
    getUndergroundTrendingTracksRaw(params: GetUndergroundTrendingTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullTracksResponse>>;
    /**
     * Gets the top 100 trending underground tracks on Audius
     */
    getUndergroundTrendingTracks(params?: GetUndergroundTrendingTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullTracksResponse>;
    /**
     * @hidden
     * Gets the top 100 trending underground tracks on Audius using a given trending strategy version
     */
    getUndergroundTrendingTracksWithVersionRaw(params: GetUndergroundTrendingTracksWithVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FullTracksResponse>>;
    /**
     * Gets the top 100 trending underground tracks on Audius using a given trending strategy version
     */
    getUndergroundTrendingTracksWithVersion(params: GetUndergroundTrendingTracksWithVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FullTracksResponse>;
    /**
     * @hidden
     * Get users that favorited a track
     */
    getUsersFromFavoritesRaw(params: GetUsersFromFavoritesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TrackFavoritesResponseFull>>;
    /**
     * Get users that favorited a track
     */
    getUsersFromFavorites(params: GetUsersFromFavoritesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TrackFavoritesResponseFull>;
    /**
     * @hidden
     * Get the users that reposted a track
     */
    getUsersFromRepostsRaw(params: GetUsersFromRepostsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TrackRepostsResponseFull>>;
    /**
     * Get the users that reposted a track
     */
    getUsersFromReposts(params: GetUsersFromRepostsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TrackRepostsResponseFull>;
}
/**
 * @export
 */
export declare const GetRecommendedTracksTimeEnum: {
    readonly Week: "week";
    readonly Month: "month";
    readonly Year: "year";
    readonly AllTime: "allTime";
};
export declare type GetRecommendedTracksTimeEnum = typeof GetRecommendedTracksTimeEnum[keyof typeof GetRecommendedTracksTimeEnum];
/**
 * @export
 */
export declare const GetRecommendedTracksWithVersionTimeEnum: {
    readonly Week: "week";
    readonly Month: "month";
    readonly Year: "year";
    readonly AllTime: "allTime";
};
export declare type GetRecommendedTracksWithVersionTimeEnum = typeof GetRecommendedTracksWithVersionTimeEnum[keyof typeof GetRecommendedTracksWithVersionTimeEnum];
/**
 * @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];
/**
 * @export
 */
export declare const GetTrendingTracksWithVersionTimeEnum: {
    readonly Week: "week";
    readonly Month: "month";
    readonly Year: "year";
    readonly AllTime: "allTime";
};
export declare type GetTrendingTracksWithVersionTimeEnum = typeof GetTrendingTracksWithVersionTimeEnum[keyof typeof GetTrendingTracksWithVersionTimeEnum];
/**
 * @export
 */
export declare const GetTrendingUSDCPurchaseTracksTimeEnum: {
    readonly Week: "week";
    readonly Month: "month";
    readonly Year: "year";
    readonly AllTime: "allTime";
};
export declare type GetTrendingUSDCPurchaseTracksTimeEnum = typeof GetTrendingUSDCPurchaseTracksTimeEnum[keyof typeof GetTrendingUSDCPurchaseTracksTimeEnum];
/**
 * @export
 */
export declare const GetTrendingUSDCPurchaseTracksWithVersionTimeEnum: {
    readonly Week: "week";
    readonly Month: "month";
    readonly Year: "year";
    readonly AllTime: "allTime";
};
export declare type GetTrendingUSDCPurchaseTracksWithVersionTimeEnum = typeof GetTrendingUSDCPurchaseTracksWithVersionTimeEnum[keyof typeof GetTrendingUSDCPurchaseTracksWithVersionTimeEnum];
/**
 * @export
 */
export declare const GetUnderTheRadarTracksFilterEnum: {
    readonly All: "all";
    readonly Repost: "repost";
    readonly Original: "original";
};
export declare type GetUnderTheRadarTracksFilterEnum = typeof GetUnderTheRadarTracksFilterEnum[keyof typeof GetUnderTheRadarTracksFilterEnum];
