import { Nullable } from '@mlytics/core-ts/core/type/basic'; import { Payload, Requester, RequesterOptions } from '@mlytics/core-ts/utility/requester'; import { MeteringAPICreateCDNDownloadAggregationData, MeteringAPICreateP2PDownloadAggregationData } from '../model/server'; declare class API { protected static _host?: Nullable; protected static _token?: Nullable; protected static _metering?: Nullable; static get host(): HostRequester; static set host(value: Nullable); static get token(): TokenRequester; static set token(value: Nullable); static get metering(): MeteringRequester; static set metering(value: Nullable); } declare class HostRequester extends Requester { constructor(options?: RequesterOptions); readHosts(): Promise; } declare class TokenRequester extends Requester { constructor(options?: RequesterOptions); readToken(options: TokenRequesterReadTokenOptions): Promise; renewToken(options: TokenRequesterRenewTokenOptions): Promise; } type TokenRequesterReadTokenOptions = { clientID: string; origin: Nullable; nonce: number; signature: string; }; type TokenRequesterRenewTokenOptions = { clientID: string; origin: Nullable; nonce: number; signature: string; token: string; }; declare class MeteringRequester extends Requester { constructor(options?: RequesterOptions); createCDNDownloadAggregation(options: MeteringRequesterCreateCDNDownloadAggregationOptions): Promise; createP2PDownloadAggregation(options: MeteringRequesterCreateP2PDownloadAggregationOptions): Promise; } type MeteringRequesterCreateCDNDownloadAggregationOptions = { data: MeteringAPICreateCDNDownloadAggregationData; }; type MeteringRequesterCreateP2PDownloadAggregationOptions = { data: MeteringAPICreateP2PDownloadAggregationData; }; export { API, HostRequester, TokenRequester, MeteringRequester };