import { HttpClient, HttpHeaders, HttpResponse, HttpEvent, HttpParameterCodec, HttpContext } from '@angular/common/http';
import { Observable } from 'rxjs';
import { AddToCountrySubscribersListRequest } from '../model/addToCountrySubscribersListRequest';
import { AffiliateClickRequest } from '../model/affiliateClickRequest';
import { AnnouncementInfo } from '../model/announcementInfo';
import { AnnouncementPlatformType } from '../model/announcementPlatformType';
import { GetProductVersionResponse } from '../model/getProductVersionResponse';
import { InstrumentConfiguration } from '../model/instrumentConfiguration';
import { MarketPairOrderBook } from '../model/marketPairOrderBook';
import { OrderBookLevel } from '../model/orderBookLevel';
import { ProductConfiguration } from '../model/productConfiguration';
import { ProductVersionType } from '../model/productVersionType';
import { PublicCheckIfCryptoAddressBlocked200Response } from '../model/publicCheckIfCryptoAddressBlocked200Response';
import { PublicCheckIfUnderMaintenance200Response } from '../model/publicCheckIfUnderMaintenance200Response';
import { PublicGetDate200Response } from '../model/publicGetDate200Response';
import { PublicGetExchangeRates200Response } from '../model/publicGetExchangeRates200Response';
import { RecentTrade } from '../model/recentTrade';
import { SendOTCRequest } from '../model/sendOTCRequest';
import { SendOTCRequest2 } from '../model/sendOTCRequest2';
import { StakingMarketingData } from '../model/stakingMarketingData';
import { SubscribeToNewsRequest } from '../model/subscribeToNewsRequest';
import { WebConfig } from '../model/webConfig';
import { Configuration } from '../configuration';
import * as i0 from "@angular/core";
export declare class PublicService {
    protected httpClient: HttpClient;
    protected basePath: string;
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    encoder: HttpParameterCodec;
    constructor(httpClient: HttpClient, basePath: string, configuration: Configuration);
    private addToHttpParams;
    private addToHttpParamsRecursive;
    /**
     * @param addToCountrySubscribersListRequest
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicAddToCountrySubscriberList(addToCountrySubscribersListRequest?: AddToCountrySubscribersListRequest, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: undefined;
        context?: HttpContext;
    }): Observable<any>;
    publicAddToCountrySubscriberList(addToCountrySubscribersListRequest?: AddToCountrySubscribersListRequest, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: undefined;
        context?: HttpContext;
    }): Observable<HttpResponse<any>>;
    publicAddToCountrySubscriberList(addToCountrySubscribersListRequest?: AddToCountrySubscribersListRequest, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: undefined;
        context?: HttpContext;
    }): Observable<HttpEvent<any>>;
    /**
     * @param address
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicCheckIfCryptoAddressBlocked(address: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<PublicCheckIfCryptoAddressBlocked200Response>;
    publicCheckIfCryptoAddressBlocked(address: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<PublicCheckIfCryptoAddressBlocked200Response>>;
    publicCheckIfCryptoAddressBlocked(address: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<PublicCheckIfCryptoAddressBlocked200Response>>;
    /**
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicCheckIfUnderMaintenance(observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<PublicCheckIfUnderMaintenance200Response>;
    publicCheckIfUnderMaintenance(observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<PublicCheckIfUnderMaintenance200Response>>;
    publicCheckIfUnderMaintenance(observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<PublicCheckIfUnderMaintenance200Response>>;
    /**
     * @param platform
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicGetActiveAnnouncements(platform?: AnnouncementPlatformType, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<AnnouncementInfo>>;
    publicGetActiveAnnouncements(platform?: AnnouncementPlatformType, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<AnnouncementInfo>>>;
    publicGetActiveAnnouncements(platform?: AnnouncementPlatformType, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<AnnouncementInfo>>>;
    /**
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicGetDate(observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<PublicGetDate200Response>;
    publicGetDate(observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<PublicGetDate200Response>>;
    publicGetDate(observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<PublicGetDate200Response>>;
    /**
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicGetEnabledInstruments(observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<InstrumentConfiguration>>;
    publicGetEnabledInstruments(observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<InstrumentConfiguration>>>;
    publicGetEnabledInstruments(observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<InstrumentConfiguration>>>;
    /**
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicGetEnabledProducts(observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<ProductConfiguration>>;
    publicGetEnabledProducts(observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<ProductConfiguration>>>;
    publicGetEnabledProducts(observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<ProductConfiguration>>>;
    /**
     * @param symbol1
     * @param symbol2
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicGetExchangeRates(symbol1: string, symbol2: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<PublicGetExchangeRates200Response>;
    publicGetExchangeRates(symbol1: string, symbol2: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<PublicGetExchangeRates200Response>>;
    publicGetExchangeRates(symbol1: string, symbol2: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<PublicGetExchangeRates200Response>>;
    /**
     * @param symbol
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicGetFiatExchangeRates(symbol: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<object>;
    publicGetFiatExchangeRates(symbol: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<object>>;
    publicGetFiatExchangeRates(symbol: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<object>>;
    /**
     * @param pair
     * @param depth
     * @param level
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicGetOrderBook(pair: string, depth: number, level: OrderBookLevel, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<MarketPairOrderBook>;
    publicGetOrderBook(pair: string, depth: number, level: OrderBookLevel, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<MarketPairOrderBook>>;
    publicGetOrderBook(pair: string, depth: number, level: OrderBookLevel, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<MarketPairOrderBook>>;
    /**
     * @param productType
     * @param version
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicGetProductVersion(productType: ProductVersionType, version: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<GetProductVersionResponse>;
    publicGetProductVersion(productType: ProductVersionType, version: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<GetProductVersionResponse>>;
    publicGetProductVersion(productType: ProductVersionType, version: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<GetProductVersionResponse>>;
    /**
     * @param pair
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicGetRecentTrades(pair: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<RecentTrade>>;
    publicGetRecentTrades(pair: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<RecentTrade>>>;
    publicGetRecentTrades(pair: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<RecentTrade>>>;
    /**
     * @param symbol
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicGetStakingMarketingData(symbol: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<StakingMarketingData>>;
    publicGetStakingMarketingData(symbol: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<StakingMarketingData>>>;
    publicGetStakingMarketingData(symbol: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<StakingMarketingData>>>;
    /**
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicGetTicker(observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<object>;
    publicGetTicker(observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<object>>;
    publicGetTicker(observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<object>>;
    /**
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicGetTickerBTC(observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<object>;
    publicGetTickerBTC(observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<object>>;
    publicGetTickerBTC(observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<object>>;
    /**
     * @param hash
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicGetWebConfig(hash?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<WebConfig>;
    publicGetWebConfig(hash?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<WebConfig>>;
    publicGetWebConfig(hash?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<WebConfig>>;
    /**
     * @param affiliateClickRequest
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicOnAffiliateClick(affiliateClickRequest?: AffiliateClickRequest, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: undefined;
        context?: HttpContext;
    }): Observable<any>;
    publicOnAffiliateClick(affiliateClickRequest?: AffiliateClickRequest, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: undefined;
        context?: HttpContext;
    }): Observable<HttpResponse<any>>;
    publicOnAffiliateClick(affiliateClickRequest?: AffiliateClickRequest, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: undefined;
        context?: HttpContext;
    }): Observable<HttpEvent<any>>;
    /**
     * @param sendOTCRequest
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicSendOTCRequest(sendOTCRequest?: SendOTCRequest, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: undefined;
        context?: HttpContext;
    }): Observable<any>;
    publicSendOTCRequest(sendOTCRequest?: SendOTCRequest, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: undefined;
        context?: HttpContext;
    }): Observable<HttpResponse<any>>;
    publicSendOTCRequest(sendOTCRequest?: SendOTCRequest, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: undefined;
        context?: HttpContext;
    }): Observable<HttpEvent<any>>;
    /**
     * @param sendOTCRequest2
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicSendOTCRequest2(sendOTCRequest2?: SendOTCRequest2, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: undefined;
        context?: HttpContext;
    }): Observable<any>;
    publicSendOTCRequest2(sendOTCRequest2?: SendOTCRequest2, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: undefined;
        context?: HttpContext;
    }): Observable<HttpResponse<any>>;
    publicSendOTCRequest2(sendOTCRequest2?: SendOTCRequest2, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: undefined;
        context?: HttpContext;
    }): Observable<HttpEvent<any>>;
    /**
     * @param subscribeToNewsRequest
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    publicSubscribeToNews(subscribeToNewsRequest?: SubscribeToNewsRequest, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: undefined;
        context?: HttpContext;
    }): Observable<any>;
    publicSubscribeToNews(subscribeToNewsRequest?: SubscribeToNewsRequest, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: undefined;
        context?: HttpContext;
    }): Observable<HttpResponse<any>>;
    publicSubscribeToNews(subscribeToNewsRequest?: SubscribeToNewsRequest, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: undefined;
        context?: HttpContext;
    }): Observable<HttpEvent<any>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<PublicService, [null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PublicService>;
}
