import { type AddressUrlParam, type CommonGraphRequestParams, type OhlcvKind, type OhlcvModel, type SingleDataResponseModel, type TvlResponseModel, type VolumeResponseModel } from '../api/types';
import { Endpoint } from '../core';
export declare enum CurrenciesOrdering {
    TvlAscending = "tvlascending",
    TvlDescending = "tvldescending"
}
export interface CurrencyResponse {
    address: string;
    currency: string;
    fee24h: string;
    price: string;
    priceChange: string;
    transactionsCount24h: number;
    tvl: string;
    tvlChange: string;
    volume24h: string;
    volume7d: string;
    volumeChange24h: string;
    volumeChange7d: string;
}
export interface CurrenciesRequestParams {
    currencyAddresses?: string[];
    limit: number;
    offset: number;
    ordering?: CurrenciesOrdering;
    tvlGe?: string;
    tvlLe?: string;
    whiteListUri?: string;
}
export interface CurrenciesResponse {
    count: number;
    currencies: CurrencyResponse[];
    offset: number;
    totalCount: number;
}
export interface CurrenciesUsdtPricesRequestParams {
    currency_addresses: string[];
}
export type CurrenciesUsdtPricesResponse = {
    [tokenRoot: string]: string;
};
export interface CurrencyOhlcvRequestParams extends CommonGraphRequestParams {
    currencyAddress: string;
    ohlcvKind: OhlcvKind;
}
export interface CurrencyOhlcvResponseModel extends Omit<OhlcvModel, 'volume'> {
    countTransactions: number;
    usdtVolume: string;
}
export type CurrencyOhlcvResponse<T extends OhlcvKind = any> = T extends OhlcvKind.Price ? CurrencyOhlcvResponseModel[] : T extends OhlcvKind.Tvl ? TvlResponseModel[] : T extends OhlcvKind.Volume ? VolumeResponseModel[] : never;
export declare function useCurrenciesApi(baseUrl?: string): {
    currencies: Endpoint<never, CurrenciesRequestParams, CurrenciesResponse>;
    currenciesUsdtPrices: Endpoint<never, CurrenciesUsdtPricesRequestParams, CurrenciesUsdtPricesResponse>;
    currency: Endpoint<AddressUrlParam, never, CurrencyResponse>;
    currencyOhlcv: Endpoint<never, CurrencyOhlcvRequestParams, CurrencyOhlcvResponseModel[] | TvlResponseModel[] | VolumeResponseModel[]>;
    currencyPrices: Endpoint<AddressUrlParam, CommonGraphRequestParams, OhlcvModel[]>;
    currencyTvl: Endpoint<AddressUrlParam, CommonGraphRequestParams, SingleDataResponseModel[]>;
    currencyVolume: Endpoint<AddressUrlParam, CommonGraphRequestParams, SingleDataResponseModel[]>;
};
