/**
 * 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 { CoinMembersCountResponse, CoinResponse, CoinsResponse, CreateCoinRequest, CreateCoinResponse, UpdateCoinRequest, UpdateCoinResponse } from '../models';
export interface CreateCoinOperationRequest {
    userId: string;
    createCoinRequest: CreateCoinRequest;
}
export interface GetCoinRequest {
    mint: string;
}
export interface GetCoinByTickerRequest {
    ticker: string;
}
export interface GetCoinMembersCountRequest {
    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 UpdateCoinOperationRequest {
    mint: string;
    userId: string;
    updateCoinRequest: UpdateCoinRequest;
}
/**
 *
 */
export declare class CoinsApi extends runtime.BaseAPI {
    /**
     * @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 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 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
     * 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 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];
