import { AuthData, GatewayInfo, LGDevice } from './settings';
export declare class LGApi {
    private axiosInstance;
    private authData;
    private gatewayInfo;
    private country;
    private language;
    private tokenObtainedAt;
    private lastApiError;
    private consecutiveErrors;
    private circuitBreakerOpen;
    constructor(country?: string, language?: string);
    private generateRandomString;
    private createSignature;
    getGatewayInfo(): Promise<GatewayInfo>;
    private getUserNumber;
    authenticateWithToken(refreshToken: string): Promise<AuthData>;
    authenticateWithCredentials(username: string, password: string): Promise<AuthData>;
    getDevices(): Promise<LGDevice[]>;
    getDeviceStatus(deviceId: string): Promise<any>;
    sendCommand(deviceId: string, command: any): Promise<any>;
    refreshAccessToken(): Promise<void>;
    autoRefreshWithCredentials(username: string, password: string): Promise<AuthData>;
    isTokenExpired(): boolean;
    private isCircuitBreakerOpen;
    private recordApiSuccess;
    private recordApiError;
    executeWithRetry<T>(apiCall: () => Promise<T>, username?: string, password?: string): Promise<T>;
    isAuthenticated(): boolean;
    validateAuthentication(): Promise<boolean>;
    getAuthData(): AuthData | null;
}
