import { ClientConfiguration } from "freeathome-api/dist/lib/Configuration";
import { Subscriber } from "freeathome-api/dist/lib/Subscriber";
import { Logger } from "freeathome-api/dist/lib/Logger";
export declare class SystemAccessPoint {
    private configuration;
    private readonly subscriber;
    private client;
    private messageBuilder;
    private crypto;
    private online;
    private settings;
    private connectedAs;
    private user;
    private keepAliveMessageId;
    private pingTimeoutSeconds;
    private keepAliveTimer;
    private pingTimeout;
    private deviceData;
    private subscribed;
    private axios;
    private logger;
    /**
     * protocols, we need some smarter way in the future (enableTLS: true in config)
     */
    private readonly _protocol1;
    private readonly _protocol2;
    /**
     * ports will be set automagically (hopefully)
     */
    private _port;
    /**
     * the API entry path
     */
    private readonly _path2api;
    /**
     * default UUID - we will read the "real" uuid from config.json
     */
    private _uuid;
    /**
     * minimal version to use the local API
    */
    private readonly _minversionAP;
    constructor(configuration: ClientConfiguration, subscriber: Subscriber, logger: Logger | null);
    private createClient;
    private getSettings;
    private getDeviceConfiguration;
    /**
     *
     *     onopen: (event: WebSocket.OpenEvent) => void;
     *     onerror: (event: WebSocket.ErrorEvent) => void;
     *     onclose: (event: WebSocket.CloseEvent) => void;
     *     onmessage: (event: WebSocket.MessageEvent) => void;
     */
    private registerHandlers;
    /**
     * heartbeat to detect if WS still send messages od my be death
     */
    private heartBeat;
    private handleEvent;
    private unwrapEventData;
    private sendMessage;
    /**
     * create and connect WS client
     */
    connect(): Promise<void>;
    disconnect(): Promise<void>;
    private sendKeepAliveMessage;
    private sendKeepAliveMessages;
    private disableKeepAliveMessages;
    private applyIncrementalUpdate;
    setDatapoint(serialNo: string, channel: string, datapoint: string, value: string): Promise<void>;
    getDeviceData(): any;
}
