/**
 * 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 { ClaimRewardsResponse, CoinInsightsResponse, CoinMembersCountResponse, CoinMembersResponse, CoinResponse, CoinsResponse, CoinsVolumeLeadersResponse, CreateCoinRequest, CreateCoinResponse, RedeemAmountResponse, RewardCodeResponse, UpdateCoinRequest, UpdateCoinResponse } from '../models';
export interface ClaimCoinRewardRequest {
    mint: string;
    userId: string;
}
export interface ClaimCoinRewardCodeRequest {
    mint: string;
    code: string;
    userId: string;
}
export interface CreateCoinOperationRequest {
    userId: string;
    createCoinRequest: CreateCoinRequest;
}
export interface GetCoinRequest {
    mint: string;
}
export interface GetCoinByTickerRequest {
    ticker: string;
}
export interface GetCoinInsightsRequest {
    mint: string;
}
export interface GetCoinMembersRequest {
    mint: string;
    offset?: number;
    limit?: number;
    sortDirection?: GetCoinMembersSortDirectionEnum;
}
export interface GetCoinMembersCountRequest {
    mint: string;
}
export interface GetCoinRedeemAmountRequest {
    mint: string;
}
export interface GetCoinsRequest {
    ticker?: Array<string>;
    mint?: Array<string>;
    ownerId?: Array<string>;
    limit?: number;
    offset?: number;
    query?: string;
    sortMethod?: GetCoinsSortMethodEnum;
    sortDirection?: GetCoinsSortDirectionEnum;
}
export interface GetRewardCodeRequest {
    mint: string;
    code: string;
}
export interface GetVolumeLeadersRequest {
    from?: string;
    to?: string;
    offset?: number;
    limit?: number;
}
export interface UpdateCoinOperationRequest {
    mint: string;
    userId: string;
    updateCoinRequest: UpdateCoinRequest;
}
/**
 *
 */
export declare class CoinsApi extends runtime.BaseAPI {
    /**
     * @hidden
     * Claims a coin reward for a given mint
     */
    claimCoinRewardRaw(params: ClaimCoinRewardRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ClaimRewardsResponse>>;
    /**
     * Claims a coin reward for a given mint
     */
    claimCoinReward(params: ClaimCoinRewardRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ClaimRewardsResponse>;
    /**
     * @hidden
     * Claims a coin reward using a given code
     */
    claimCoinRewardCodeRaw(params: ClaimCoinRewardCodeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ClaimRewardsResponse>>;
    /**
     * Claims a coin reward using a given code
     */
    claimCoinRewardCode(params: ClaimCoinRewardCodeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ClaimRewardsResponse>;
    /**
     * @hidden
     * Creates a new artist coin
     */
    createCoinRaw(params: CreateCoinOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CreateCoinResponse>>;
    /**
     * Creates a new artist coin
     */
    createCoin(params: CreateCoinOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CreateCoinResponse>;
    /**
     * @hidden
     * Gets information about a specific coin by its mint address
     */
    getCoinRaw(params: GetCoinRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CoinResponse>>;
    /**
     * Gets information about a specific coin by its mint address
     */
    getCoin(params: GetCoinRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CoinResponse>;
    /**
     * @hidden
     * Gets information about a specific coin by its ticker
     */
    getCoinByTickerRaw(params: GetCoinByTickerRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CoinResponse>>;
    /**
     * Gets information about a specific coin by its ticker
     */
    getCoinByTicker(params: GetCoinByTickerRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CoinResponse>;
    /**
     * @hidden
     * Gets insights about a specific coin by its mint address
     */
    getCoinInsightsRaw(params: GetCoinInsightsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CoinInsightsResponse>>;
    /**
     * Gets insights about a specific coin by its mint address
     */
    getCoinInsights(params: GetCoinInsightsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CoinInsightsResponse>;
    /**
     * @hidden
     * Gets a list of Audius users with a non-zero balance of a specific coin
     */
    getCoinMembersRaw(params: GetCoinMembersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CoinMembersResponse>>;
    /**
     * Gets a list of Audius users with a non-zero balance of a specific coin
     */
    getCoinMembers(params: GetCoinMembersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CoinMembersResponse>;
    /**
     * @hidden
     * Gets the total number of Audius users with a non-zero balance of a specific coin
     */
    getCoinMembersCountRaw(params: GetCoinMembersCountRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CoinMembersCountResponse>>;
    /**
     * Gets the total number of Audius users with a non-zero balance of a specific coin
     */
    getCoinMembersCount(params: GetCoinMembersCountRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CoinMembersCountResponse>;
    /**
     * @hidden
     * Gets the availability indicator for reward codes for a specific coin
     */
    getCoinRedeemAmountRaw(params: GetCoinRedeemAmountRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RedeemAmountResponse>>;
    /**
     * Gets the availability indicator for reward codes for a specific coin
     */
    getCoinRedeemAmount(params: GetCoinRedeemAmountRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RedeemAmountResponse>;
    /**
     * @hidden
     * Gets a list of coins with optional filtering
     */
    getCoinsRaw(params: GetCoinsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CoinsResponse>>;
    /**
     * Gets a list of coins with optional filtering
     */
    getCoins(params?: GetCoinsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CoinsResponse>;
    /**
     * @hidden
     * Gets information about a specific reward code for a coin
     */
    getRewardCodeRaw(params: GetRewardCodeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RewardCodeResponse>>;
    /**
     * Gets information about a specific reward code for a coin
     */
    getRewardCode(params: GetRewardCodeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RewardCodeResponse>;
    /**
     * @hidden
     * Gets top coin<>AUDIO trading addresses by volume
     */
    getVolumeLeadersRaw(params: GetVolumeLeadersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CoinsVolumeLeadersResponse>>;
    /**
     * Gets top coin<>AUDIO trading addresses by volume
     */
    getVolumeLeaders(params?: GetVolumeLeadersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CoinsVolumeLeadersResponse>;
    /**
     * @hidden
     * Updates information about a specific coin by its mint address
     */
    updateCoinRaw(params: UpdateCoinOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UpdateCoinResponse>>;
    /**
     * Updates information about a specific coin by its mint address
     */
    updateCoin(params: UpdateCoinOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UpdateCoinResponse>;
}
/**
 * @export
 */
export declare const GetCoinMembersSortDirectionEnum: {
    readonly Asc: "asc";
    readonly Desc: "desc";
};
export type GetCoinMembersSortDirectionEnum = typeof GetCoinMembersSortDirectionEnum[keyof typeof GetCoinMembersSortDirectionEnum];
/**
 * @export
 */
export declare const GetCoinsSortMethodEnum: {
    readonly MarketCap: "market_cap";
    readonly Price: "price";
    readonly Volume: "volume";
    readonly CreatedAt: "created_at";
    readonly Holder: "holder";
};
export type GetCoinsSortMethodEnum = typeof GetCoinsSortMethodEnum[keyof typeof GetCoinsSortMethodEnum];
/**
 * @export
 */
export declare const GetCoinsSortDirectionEnum: {
    readonly Asc: "asc";
    readonly Desc: "desc";
};
export type GetCoinsSortDirectionEnum = typeof GetCoinsSortDirectionEnum[keyof typeof GetCoinsSortDirectionEnum];
