/**
 * 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 { AuthorizedApps, ConnectedWalletsResponse, DeveloperApps, FavoritesResponse, FollowersResponse, FollowingResponse, GetSupporters, GetSupporting, RelatedArtistResponse, Reposts, SubscribersResponse, TagsResponse, TracksResponse, UserAssociatedWalletResponse, UserResponse, UserSearch, VerifyToken } from '../models';
export interface DownloadPurchasesAsCSVRequest {
    id: string;
    encodedDataMessage: string;
    encodedDataSignature: string;
    userId?: string;
}
export interface DownloadSalesAsCSVRequest {
    id: string;
    encodedDataMessage: string;
    encodedDataSignature: string;
    userId?: string;
}
export interface DownloadUSDCWithdrawalsAsCSVRequest {
    id: string;
    encodedDataMessage: string;
    encodedDataSignature: string;
    userId?: string;
}
export interface GetAIAttributedTracksByUserHandleRequest {
    handle: string;
    offset?: number;
    limit?: number;
    userId?: string;
    sort?: GetAIAttributedTracksByUserHandleSortEnum;
    query?: string;
    sortMethod?: GetAIAttributedTracksByUserHandleSortMethodEnum;
    sortDirection?: GetAIAttributedTracksByUserHandleSortDirectionEnum;
    filterTracks?: GetAIAttributedTracksByUserHandleFilterTracksEnum;
}
export interface GetAuthorizedAppsRequest {
    id: string;
}
export interface GetConnectedWalletsRequest {
    id: string;
}
export interface GetDeveloperAppsRequest {
    id: string;
}
export interface GetFavoritesRequest {
    id: string;
}
export interface GetFollowersRequest {
    id: string;
    offset?: number;
    limit?: number;
    userId?: string;
}
export interface GetFollowingRequest {
    id: string;
    offset?: number;
    limit?: number;
    userId?: string;
}
export interface GetRelatedUsersRequest {
    id: string;
    offset?: number;
    limit?: number;
    userId?: string;
}
export interface GetRepostsRequest {
    id: string;
    offset?: number;
    limit?: number;
    userId?: string;
}
export interface GetSubscribersRequest {
    id: string;
    offset?: number;
    limit?: number;
    userId?: string;
}
export interface GetSupportersRequest {
    id: string;
    offset?: number;
    limit?: number;
}
export interface GetSupportingsRequest {
    id: string;
    offset?: number;
    limit?: number;
}
export interface GetTopTrackTagsRequest {
    id: string;
    limit?: number;
    userId?: string;
}
export interface GetTracksByUserRequest {
    id: string;
    offset?: number;
    limit?: number;
    userId?: string;
    sort?: GetTracksByUserSortEnum;
    query?: string;
    sortMethod?: GetTracksByUserSortMethodEnum;
    sortDirection?: GetTracksByUserSortDirectionEnum;
    filterTracks?: GetTracksByUserFilterTracksEnum;
}
export interface GetUserRequest {
    id: string;
}
export interface GetUserByHandleRequest {
    handle: string;
    userId?: string;
}
export interface GetUserIDFromWalletRequest {
    associatedWallet: string;
}
export interface SearchUsersRequest {
    query: string;
}
export interface VerifyIDTokenRequest {
    token: string;
}
/**
 *
 */
export declare class UsersApi extends runtime.BaseAPI {
    /**
     * @hidden
     * Downloads the purchases the user has made as a CSV file
     */
    downloadPurchasesAsCSVRaw(params: DownloadPurchasesAsCSVRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
    /**
     * Downloads the purchases the user has made as a CSV file
     */
    downloadPurchasesAsCSV(params: DownloadPurchasesAsCSVRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
    /**
     * @hidden
     * Downloads the sales the user has made as a CSV file
     */
    downloadSalesAsCSVRaw(params: DownloadSalesAsCSVRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
    /**
     * Downloads the sales the user has made as a CSV file
     */
    downloadSalesAsCSV(params: DownloadSalesAsCSVRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
    /**
     * @hidden
     * Downloads the USDC withdrawals the user has made as a CSV file
     */
    downloadUSDCWithdrawalsAsCSVRaw(params: DownloadUSDCWithdrawalsAsCSVRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
    /**
     * Downloads the USDC withdrawals the user has made as a CSV file
     */
    downloadUSDCWithdrawalsAsCSV(params: DownloadUSDCWithdrawalsAsCSVRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
    /**
     * @hidden
     * Gets the AI generated tracks attributed to a user using the user\'s handle
     */
    getAIAttributedTracksByUserHandleRaw(params: GetAIAttributedTracksByUserHandleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TracksResponse>>;
    /**
     * Gets the AI generated tracks attributed to a user using the user\'s handle
     */
    getAIAttributedTracksByUserHandle(params: GetAIAttributedTracksByUserHandleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TracksResponse>;
    /**
     * @hidden
     * Get the apps that user has authorized to write to their account
     */
    getAuthorizedAppsRaw(params: GetAuthorizedAppsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AuthorizedApps>>;
    /**
     * Get the apps that user has authorized to write to their account
     */
    getAuthorizedApps(params: GetAuthorizedAppsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AuthorizedApps>;
    /**
     * @hidden
     * Get the User\'s ERC and SPL connected wallets
     */
    getConnectedWalletsRaw(params: GetConnectedWalletsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ConnectedWalletsResponse>>;
    /**
     * Get the User\'s ERC and SPL connected wallets
     */
    getConnectedWallets(params: GetConnectedWalletsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ConnectedWalletsResponse>;
    /**
     * @hidden
     * Gets the developer apps that the user owns
     */
    getDeveloperAppsRaw(params: GetDeveloperAppsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DeveloperApps>>;
    /**
     * Gets the developer apps that the user owns
     */
    getDeveloperApps(params: GetDeveloperAppsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DeveloperApps>;
    /**
     * @hidden
     * Gets a user\'s favorite tracks
     */
    getFavoritesRaw(params: GetFavoritesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FavoritesResponse>>;
    /**
     * Gets a user\'s favorite tracks
     */
    getFavorites(params: GetFavoritesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FavoritesResponse>;
    /**
     * @hidden
     * All users that follow the provided user
     */
    getFollowersRaw(params: GetFollowersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FollowersResponse>>;
    /**
     * All users that follow the provided user
     */
    getFollowers(params: GetFollowersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FollowersResponse>;
    /**
     * @hidden
     * All users that the provided user follows
     */
    getFollowingRaw(params: GetFollowingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FollowingResponse>>;
    /**
     * All users that the provided user follows
     */
    getFollowing(params: GetFollowingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FollowingResponse>;
    /**
     * @hidden
     * Gets a list of users that might be of interest to followers of this user.
     */
    getRelatedUsersRaw(params: GetRelatedUsersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RelatedArtistResponse>>;
    /**
     * Gets a list of users that might be of interest to followers of this user.
     */
    getRelatedUsers(params: GetRelatedUsersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RelatedArtistResponse>;
    /**
     * @hidden
     * Gets the given user\'s reposts
     */
    getRepostsRaw(params: GetRepostsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Reposts>>;
    /**
     * Gets the given user\'s reposts
     */
    getReposts(params: GetRepostsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Reposts>;
    /**
     * @hidden
     * All users that subscribe to the provided user
     */
    getSubscribersRaw(params: GetSubscribersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SubscribersResponse>>;
    /**
     * All users that subscribe to the provided user
     */
    getSubscribers(params: GetSubscribersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SubscribersResponse>;
    /**
     * @hidden
     * Gets the supporters of the given user
     */
    getSupportersRaw(params: GetSupportersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<GetSupporters>>;
    /**
     * Gets the supporters of the given user
     */
    getSupporters(params: GetSupportersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<GetSupporters>;
    /**
     * @hidden
     * Gets the users that the given user supports
     */
    getSupportingsRaw(params: GetSupportingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<GetSupporting>>;
    /**
     * Gets the users that the given user supports
     */
    getSupportings(params: GetSupportingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<GetSupporting>;
    /**
     * @hidden
     * Gets the most used track tags by a user.
     * Fetch most used tags in a user\'s tracks
     */
    getTopTrackTagsRaw(params: GetTopTrackTagsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TagsResponse>>;
    /**
     * Gets the most used track tags by a user.
     * Fetch most used tags in a user\'s tracks
     */
    getTopTrackTags(params: GetTopTrackTagsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TagsResponse>;
    /**
     * @hidden
     * Gets the tracks created by a user using their user ID
     */
    getTracksByUserRaw(params: GetTracksByUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TracksResponse>>;
    /**
     * Gets the tracks created by a user using their user ID
     */
    getTracksByUser(params: GetTracksByUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TracksResponse>;
    /**
     * @hidden
     * Gets a single user by their user ID
     */
    getUserRaw(params: GetUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UserResponse>>;
    /**
     * Gets a single user by their user ID
     */
    getUser(params: GetUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UserResponse>;
    /**
     * @hidden
     * Gets a single user by their handle
     */
    getUserByHandleRaw(params: GetUserByHandleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UserResponse>>;
    /**
     * Gets a single user by their handle
     */
    getUserByHandle(params: GetUserByHandleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UserResponse>;
    /**
     * @hidden
     * Gets a User ID from an associated wallet address
     */
    getUserIDFromWalletRaw(params: GetUserIDFromWalletRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UserAssociatedWalletResponse>>;
    /**
     * Gets a User ID from an associated wallet address
     */
    getUserIDFromWallet(params: GetUserIDFromWalletRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UserAssociatedWalletResponse>;
    /**
     * @hidden
     * Search for users that match the given query
     */
    searchUsersRaw(params: SearchUsersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UserSearch>>;
    /**
     * Search for users that match the given query
     */
    searchUsers(params: SearchUsersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UserSearch>;
    /**
     * @hidden
     * Verify if the given jwt ID token was signed by the subject (user) in the payload
     */
    verifyIDTokenRaw(params: VerifyIDTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<VerifyToken>>;
    /**
     * Verify if the given jwt ID token was signed by the subject (user) in the payload
     */
    verifyIDToken(params: VerifyIDTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<VerifyToken>;
}
/**
 * @export
 */
export declare const GetAIAttributedTracksByUserHandleSortEnum: {
    readonly Date: "date";
    readonly Plays: "plays";
};
export declare type GetAIAttributedTracksByUserHandleSortEnum = typeof GetAIAttributedTracksByUserHandleSortEnum[keyof typeof GetAIAttributedTracksByUserHandleSortEnum];
/**
 * @export
 */
export declare const GetAIAttributedTracksByUserHandleSortMethodEnum: {
    readonly Title: "title";
    readonly ArtistName: "artist_name";
    readonly ReleaseDate: "release_date";
    readonly LastListenDate: "last_listen_date";
    readonly AddedDate: "added_date";
    readonly Plays: "plays";
    readonly Reposts: "reposts";
    readonly Saves: "saves";
    readonly MostListensByUser: "most_listens_by_user";
};
export declare type GetAIAttributedTracksByUserHandleSortMethodEnum = typeof GetAIAttributedTracksByUserHandleSortMethodEnum[keyof typeof GetAIAttributedTracksByUserHandleSortMethodEnum];
/**
 * @export
 */
export declare const GetAIAttributedTracksByUserHandleSortDirectionEnum: {
    readonly Asc: "asc";
    readonly Desc: "desc";
};
export declare type GetAIAttributedTracksByUserHandleSortDirectionEnum = typeof GetAIAttributedTracksByUserHandleSortDirectionEnum[keyof typeof GetAIAttributedTracksByUserHandleSortDirectionEnum];
/**
 * @export
 */
export declare const GetAIAttributedTracksByUserHandleFilterTracksEnum: {
    readonly All: "all";
    readonly Public: "public";
    readonly Unlisted: "unlisted";
};
export declare type GetAIAttributedTracksByUserHandleFilterTracksEnum = typeof GetAIAttributedTracksByUserHandleFilterTracksEnum[keyof typeof GetAIAttributedTracksByUserHandleFilterTracksEnum];
/**
 * @export
 */
export declare const GetTracksByUserSortEnum: {
    readonly Date: "date";
    readonly Plays: "plays";
};
export declare type GetTracksByUserSortEnum = typeof GetTracksByUserSortEnum[keyof typeof GetTracksByUserSortEnum];
/**
 * @export
 */
export declare const GetTracksByUserSortMethodEnum: {
    readonly Title: "title";
    readonly ArtistName: "artist_name";
    readonly ReleaseDate: "release_date";
    readonly LastListenDate: "last_listen_date";
    readonly AddedDate: "added_date";
    readonly Plays: "plays";
    readonly Reposts: "reposts";
    readonly Saves: "saves";
    readonly MostListensByUser: "most_listens_by_user";
};
export declare type GetTracksByUserSortMethodEnum = typeof GetTracksByUserSortMethodEnum[keyof typeof GetTracksByUserSortMethodEnum];
/**
 * @export
 */
export declare const GetTracksByUserSortDirectionEnum: {
    readonly Asc: "asc";
    readonly Desc: "desc";
};
export declare type GetTracksByUserSortDirectionEnum = typeof GetTracksByUserSortDirectionEnum[keyof typeof GetTracksByUserSortDirectionEnum];
/**
 * @export
 */
export declare const GetTracksByUserFilterTracksEnum: {
    readonly All: "all";
    readonly Public: "public";
    readonly Unlisted: "unlisted";
};
export declare type GetTracksByUserFilterTracksEnum = typeof GetTracksByUserFilterTracksEnum[keyof typeof GetTracksByUserFilterTracksEnum];
