/**
 * Copyright (c) 2022 BlockDev AG
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
import { HttpInterface } from '../http/interface';
import { Tokens } from '../common/tokens';
export declare class ProviderAPI {
    private http;
    constructor(http: HttpInterface);
    sessions(query?: MetricsQuery): Promise<SessionsV2Response>;
    sessionCount(query?: MetricsQuery): Promise<SessionV2CountResponse>;
    transferredDataCount(query?: MetricsQuery): Promise<SessionV2CountResponse>;
    uniqueConsumerCount(query?: MetricsQuery): Promise<SessionV2CountResponse>;
    seriesSessions(query?: MetricsQuery): Promise<SeriesResponse>;
    seriesEarnings(query?: MetricsQuery): Promise<SeriesResponse>;
    seriesData(query?: MetricsQuery): Promise<SeriesResponse>;
    quality(): Promise<QualityResponse>;
    activity(): Promise<ActivityResponse>;
    earningsPerService(): Promise<EarningsPerServiceResponse>;
}
export interface EarningsPerServiceResponse {
    publicTokens: Tokens;
    dataTransferTokens: Tokens;
    dvpnTokens: Tokens;
    scrapingTokens: Tokens;
    totalTokens: Tokens;
    totalDvpnTokens: Tokens;
    totalPublicTokens: Tokens;
    totalDataTransferTokens: Tokens;
    totalScrapingTokens: Tokens;
}
export interface ActivityResponse {
    onlinePercent: number;
    activePercent: number;
}
export interface QualityResponse {
    quality: number;
}
export declare type MetricsRange = '1d' | '7d' | '30d' | string;
export interface MetricsQuery {
    range?: MetricsRange;
}
export interface SessionsV2Response {
    sessions: SessionV2[];
}
export interface SessionV2 {
    id: string;
    consumerCountry: string;
    serviceType: string;
    durationSeconds: number;
    startedAt: string;
    earnings: Tokens;
    transferredBytes: number;
}
export interface SessionV2CountResponse {
    count: number;
}
export interface SeriesEntry {
    value: string;
    timestamp: number;
}
export interface SeriesResponse {
    data: SeriesEntry[];
}
