import { Logger } from 'homebridge';
import { Device } from './device.js';
import * as Types from './types.js';
export declare class FlumeAPI {
    private readonly config;
    private persistPath;
    private readonly log;
    private _auth?;
    readonly locationNames: Map<string, string>;
    private readonly _devices;
    private retryIndex;
    private syncTimer;
    private lastFullRefresh;
    private constructor();
    static connect(config: Types.FlumeConfig, persistPath: string, log: Logger): Promise<FlumeAPI>;
    get devices(): Device[];
    teardown(): void;
    private do;
    private retryIfPossible;
    private get auth();
    private saveTokenData;
    private authenticate;
    private authRefresh;
    private refreshAuthIfNecessary;
    private startSyncTimer;
    private getLocations;
    private getUnreadNotifications;
    private getDevices;
    private getDeviceData;
    private getLeakData;
    private getUsageData;
    private synchronizeData;
    private logHTTP;
    private logIfVerbose;
}
