import { AxiosInstance } from 'axios';
import { Logger } from 'homebridge';
import { Vendor, Area, Zone, Output, SecuritySystemAreaCommand, SecuritySystemZoneCommand } from './definitions';
export declare const retryDelayDuration: number;
export declare class NX595ESecuritySystem {
    protected username: string;
    protected passcode: string;
    protected IPAddress: string;
    protected httpPrefix: string;
    protected log: Logger;
    protected client: AxiosInstance;
    private readonly lock;
    protected sessionID: string;
    protected vendor: Vendor;
    protected version: string;
    protected release: string;
    protected _isMaster: boolean;
    protected _isInstaller: boolean;
    protected lastUpdate: Date;
    protected areas: Area[];
    protected zones: Zone[];
    protected outputs: Output[];
    protected zoneNameCount: number;
    protected __extra_area_status: string[];
    protected zonesSequence: number[];
    protected zonesBank: number[][];
    protected _zvbank: number[][];
    constructor(address: string, userid: string, pin: string, log: Logger, useHTTPS?: boolean);
    login(): Promise<void>;
    logout(): Promise<void>;
    sendAreaCommand(command?: SecuritySystemAreaCommand, areas?: number[] | number): Promise<boolean>;
    private retrieveAreas;
    private retrieveZones;
    private retrieveOutputs;
    private processAreas;
    private processZones;
    poll(): Promise<false | undefined>;
    private zoneStatusUpdate;
    private outputStatusUpdate;
    private areaStatusUpdate;
    private makeRequest;
    sendOutputCommand(command: boolean, output: number): Promise<boolean>;
    sendZoneCommand(command?: SecuritySystemZoneCommand, zones?: number[] | number): Promise<boolean>;
    getZones(): Zone[];
    getOutputs(): Output[];
    getAreas(): Area[];
    getZoneState(zone: number): boolean;
    getOutputState(output: number): boolean;
    getZoneBankState(zone: number): string;
    getAreaStatus(area: number): string;
    getAreaChimeStatus(area: number): boolean;
    getAreaArmStatus(area: number): boolean;
    getFirmwareVersion(): string;
}
//# sourceMappingURL=NX595ESecuritySystem.d.ts.map