/// <reference types="node" />
import { Session } from './Session';
import { Gateway } from './Gateway';
import { Auth } from './Auth';
import { WorkId } from './ThinQ';
export declare class API {
    protected country: string;
    protected language: string;
    protected _homes: any;
    protected _gateway: Gateway | undefined;
    protected session: Session;
    protected jsessionId: string;
    protected auth: Auth;
    protected userNumber: string;
    protected username: string;
    protected password: string;
    client_id: string;
    httpClient: import("axios").AxiosInstance;
    logger: any;
    constructor(country?: string, language?: string);
    getRequest(uri: any): Promise<any>;
    postRequest(uri: any, data: any): Promise<any>;
    protected request(method: any, uri: string, data?: any, retry?: boolean): any;
    protected get monitorHeaders(): {
        Accept: string;
        'x-thinq-application-key': string;
        'x-thinq-security-key': string;
    };
    protected get defaultHeaders(): {
        'x-api-key': string;
        'x-thinq-app-ver': string;
        'x-thinq-app-type': string;
        'x-thinq-app-level': string;
        'x-thinq-app-os': string;
        'x-thinq-app-logintype': string;
        'x-service-code': string;
        'x-country-code': string;
        'x-language-code': string;
        'x-service-phase': string;
        'x-origin': string;
        'x-model-name': string;
        'x-os-version': string;
        'x-app-version': string;
        'x-message-id': string;
        'user-agent': string;
    };
    getSingleDevice(device_id: string): Promise<any>;
    getListDevices(): Promise<Record<string, any>[]>;
    getListHomes(): Promise<any>;
    sendCommandToDevice(device_id: string, values: Record<string, any>, command: 'Set' | 'Operation', ctrlKey?: string, ctrlPath?: string): Promise<any>;
    sendMonitorCommand(deviceId: string, cmdOpt: string, workId: WorkId): Promise<any>;
    getMonitorResult(device_id: any, work_id: any): Promise<Buffer | null>;
    setRefreshToken(refreshToken: any): void;
    setUsernamePassword(username: any, password: any): void;
    gateway(): Promise<Gateway>;
    ready(): Promise<void>;
    refreshNewToken(session?: Session | null): Promise<void>;
    thinq1PostRequest(endpoint: string, data: any): Promise<any>;
}
//# sourceMappingURL=API.d.ts.map