homebridge-lg-thinq-ceiling-fan
Version:
A Homebridge plugin for controlling LG ceiling fans via the LG ThinQ platform with working speed control
33 lines (32 loc) • 1.3 kB
TypeScript
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;
}