///
import { AxiosInstance } from "axios";
import EventEmitter from "events";
import { LoginConfirmationResponse, OperatorsResponse, SubscriberFinancesResponse, SubscriberProfileResponse } from "../types/api";
declare type LoginDetails = {
phone: number;
operatorId: number;
subscriberId: number;
accountId: string | null;
placeId: number;
address: string;
profileId: string | null;
};
declare class API {
private _loginDetails;
private _accessToken;
private _refreshToken;
private _ready;
private _instance;
private _emmiter;
constructor();
get loginDetails(): LoginDetails;
get accessToken(): string;
get refreshToken(): string;
get ready(): boolean;
get instance(): AxiosInstance;
get emmiter(): EventEmitter;
destroy(): void;
setCredentials(options: {
loginDetails: LoginDetails;
accessToken: string;
refreshToken: string;
}): void;
getPlaces(): Promise<{
id: number;
address: {
kladrAddress: {
index: string | null;
region: string | null;
district: string | null;
city: string | null;
locality: string | null;
street: string | null;
house: string | null;
building: string | null;
apartment: string | null;
};
kladrAddressString: string;
visibleAddress: string;
groupName: string;
};
location: {
longitude: number;
latitude: number;
};
autoArmingState: boolean;
autoArmingRadius: number;
previewAvailable: boolean;
videoDownloadAvailable: boolean;
controllers: any[];
accessControls: {
id: number;
name: string;
forpostGroupId: string;
forpostAccountId: string | null;
type: string;
allowOpen: boolean;
allowVideo: boolean;
allowCallMobile: boolean;
entrances: any[];
}[];
cameras: any[];
}[]>;
getPlace(placeId: number): Promise<{
id: number;
address: {
kladrAddress: {
index: string | null;
region: string | null;
district: string | null;
city: string | null;
locality: string | null;
street: string | null;
house: string | null;
building: string | null;
apartment: string | null;
};
kladrAddressString: string;
visibleAddress: string;
groupName: string;
};
location: {
longitude: number;
latitude: number;
};
autoArmingState: boolean;
autoArmingRadius: number;
previewAvailable: boolean;
videoDownloadAvailable: boolean;
controllers: any[];
accessControls: {
id: number;
name: string;
forpostGroupId: string;
forpostAccountId: string | null;
type: string;
allowOpen: boolean;
allowVideo: boolean;
allowCallMobile: boolean;
entrances: any[];
}[];
cameras: any[];
}>;
getProfile(): Promise;
getFinances(): Promise;
getForpostCameras(): Promise<{
ID: number;
Name: string;
IsActive: number;
IsSound: number;
RecordType: number;
Quota: number;
MaxBandwidth: number | null;
HomeMode: number;
Devices: any;
ParentGroups: {
ID: number;
Name: string;
ParentID: number | null;
}[];
State: number;
TimeZone: number;
MotionDetectorMode: string;
ParentID: string;
}[]>;
getOperators(): Promise;
getLoginDetails(phone: number): Promise<{
operatorId: number;
subscriberId: number;
accountId: string | null;
placeId: number;
address: string;
profileId: string | null;
phone: number;
}[]>;
sendConfirmation(loginDetails: LoginDetails): Promise;
loginConfirmation(loginDetails: LoginDetails, code: number): Promise;
private refreshTokens;
}
export { API };