eufy-security-client
Version:
Client to comunicate with Eufy-Security devices
91 lines (90 loc) • 5.16 kB
TypeScript
import { TypedEmitter } from "tiny-typed-emitter";
import { TrustDevice, Cipher, EventRecordResponse, ConfirmInvite, SensorHistoryEntry, ApiResponse, HouseDetail, DeviceListResponse, StationListResponse, HouseInviteListResponse, HouseListResponse, PassportProfileResponse, User, AddUserResponse } from "./models";
import { HTTPApiEvents, Ciphers, FullDevices, Hubs, Voices, Invites, HTTPApiRequest, HTTPApiPersistentData, LoginOptions, Schedule } from "./interfaces";
import { EventFilterType, PublicKeyType, VerfyCodeTypes } from "./types";
export declare class HTTPApi extends TypedEmitter<HTTPApiEvents> {
private static apiDomainBase;
private readonly SERVER_PUBLIC_KEY;
private apiBase;
private username;
private password;
private ecdh;
private token;
private tokenExpiration;
private renewAuthTokenJob?;
private connected;
private requestEufyCloud;
private throttle;
private devices;
private hubs;
private houses;
private persistentData;
private headers;
private constructor();
static getApiBaseFromCloud(country: string): Promise<string>;
private loadLibraries;
static initialize(country: string, username: string, password: string, persistentData?: HTTPApiPersistentData): Promise<HTTPApi>;
private clearScheduleRenewAuthToken;
private scheduleRenewAuthToken;
private invalidateToken;
setPhoneModel(model: string): void;
getPhoneModel(): string;
getCountry(): string;
setLanguage(language: string): void;
getLanguage(): string;
login(options?: LoginOptions): Promise<void>;
sendVerifyCode(type?: VerfyCodeTypes): Promise<boolean>;
listTrustDevice(): Promise<Array<TrustDevice>>;
addTrustDevice(verifyCode: string): Promise<boolean>;
getStationList(): Promise<Array<StationListResponse>>;
getDeviceList(): Promise<Array<DeviceListResponse>>;
refreshHouseData(): Promise<void>;
refreshStationData(): Promise<void>;
refreshDeviceData(): Promise<void>;
refreshAllData(): Promise<void>;
request(request: HTTPApiRequest, withoutUrlPrefix?: boolean): Promise<ApiResponse>;
checkPushToken(): Promise<boolean>;
registerPushToken(token: string): Promise<boolean>;
setParameters(stationSN: string, deviceSN: string, params: {
paramType: number;
paramValue: any;
}[]): Promise<boolean>;
getCiphers(/*stationSN: string, */ cipherIDs: Array<number>, userID: string): Promise<Ciphers>;
getVoices(deviceSN: string): Promise<Voices>;
getCipher(/*stationSN: string, */ cipherID: number, userID: string): Promise<Cipher>;
getDevices(): FullDevices;
getHubs(): Hubs;
getToken(): string | null;
getTokenExpiration(): Date | null;
setToken(token: string): void;
setTokenExpiration(tokenExpiration: Date): void;
getAPIBase(): string;
setOpenUDID(openudid: string): void;
setSerialNumber(serialnumber: string): void;
private _getEvents;
getVideoEvents(startTime: Date, endTime: Date, filter?: EventFilterType, maxResults?: number): Promise<Array<EventRecordResponse>>;
getAlarmEvents(startTime: Date, endTime: Date, filter?: EventFilterType, maxResults?: number): Promise<Array<EventRecordResponse>>;
getHistoryEvents(startTime: Date, endTime: Date, filter?: EventFilterType, maxResults?: number): Promise<Array<EventRecordResponse>>;
getAllVideoEvents(filter?: EventFilterType, maxResults?: number): Promise<Array<EventRecordResponse>>;
getAllAlarmEvents(filter?: EventFilterType, maxResults?: number): Promise<Array<EventRecordResponse>>;
getAllHistoryEvents(filter?: EventFilterType, maxResults?: number): Promise<Array<EventRecordResponse>>;
isConnected(): boolean;
getInvites(): Promise<Invites>;
confirmInvites(confirmInvites: Array<ConfirmInvite>): Promise<boolean>;
getPublicKey(deviceSN: string, type: PublicKeyType): Promise<string>;
decryptAPIData(data?: string, json?: boolean): any;
getSensorHistory(stationSN: string, deviceSN: string): Promise<Array<SensorHistoryEntry>>;
getHouseDetail(houseID: string): Promise<HouseDetail | null>;
getHouseList(): Promise<Array<HouseListResponse>>;
getHouseInviteList(isInviter?: number): Promise<Array<HouseInviteListResponse>>;
confirmHouseInvite(houseID: string, inviteID: number): Promise<boolean>;
getPersistentData(): HTTPApiPersistentData | undefined;
getPassportProfile(): Promise<PassportProfileResponse | null>;
addUser(deviceSN: string, nickname: string, stationSN?: string): Promise<AddUserResponse | null>;
deleteUser(deviceSN: string, shortUserId: string, stationSN?: string): Promise<boolean>;
getUsers(deviceSN: string, stationSN: string): Promise<Array<User> | null>;
getUser(deviceSN: string, stationSN: string, shortUserId: string): Promise<User | null>;
updateUser(deviceSN: string, stationSN: string, shortUserId: string, nickname: string): Promise<boolean>;
getImage(deviceSN: string, url: string): Promise<Buffer>;
updateUserPassword(deviceSN: string, shortUserId: string, passwordId: string, schedule: Schedule, stationSN?: string): Promise<boolean>;
}