import { EventEmitter } from 'events';
import { Data, DataFetcher } from '../DataDomain';
import { Logger } from '../PlatformDomain';
import * as api from './MyUplinkApiModel';
interface Options {
    clientId: string;
    clientSecret: string;
    interval: number;
    language: string;
    showApiResponse: boolean;
}
export declare class MyUplinkApiFetcher extends EventEmitter implements DataFetcher {
    private options;
    private log;
    private interval;
    private active;
    private systems;
    private auth;
    private cache;
    private currentlySetting;
    constructor(options: Options, log: Logger);
    start(): void;
    stop(): void;
    private fetch;
    private getToken;
    private fetchSystems;
    private fetchDeviceInfo;
    private fetchPremiumSubscriptions;
    private fetchData;
    static mapData(system: api.System, subscriptions: string[], device: api.Device, deviceInfo: api.DeviceInfo, response: api.Parameter[]): Data;
    private getFromMyUplink;
    setValue(deviceId: string, paramId: string, value: any): Promise<void>;
    private checkError;
    private getSession;
    private setSession;
    private clearSession;
    private isTokenExpired;
    private _onData;
    private _onError;
}
export {};
