import { myQDevice, myQHwInfo } from "./myq-types.js";
import { myQLogging } from "./myq-logging.js";
export declare class myQApi {
    devices: myQDevice[];
    private accessToken;
    private refreshInterval;
    private refreshToken;
    private tokenScope;
    private accessTokenTimestamp;
    private apiReturnStatus;
    private email;
    private password;
    private accounts;
    private headers;
    private log;
    private lastAuthenticateCall;
    private lastRefreshDevicesCall;
    private myqRetrieve;
    private region;
    constructor(log?: myQLogging);
    login(email: string, password: string): Promise<boolean>;
    private oauthGetAuthPage;
    private oauthLogin;
    private oauthRedirect;
    private getOAuthToken;
    private refreshOAuthToken;
    private acquireAccessToken;
    private refreshAccessToken;
    refreshDevices(): Promise<boolean>;
    execute(device: myQDevice, command: string): Promise<boolean>;
    private getAccounts;
    getDevice(serial: string): myQDevice | null;
    getDeviceName(device: myQDevice): string;
    getHwInfo(serial: string): myQHwInfo | null;
    private trimSetCookie;
    private retrieve;
}
