mysterium-vpn-js
Version:
Javascript SDK for Mysterium node
67 lines (66 loc) • 2.06 kB
TypeScript
/**
* 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[];
}