///
import EventEmitter from "events";
import { IpHistory, PartialRouterConfig, RenewableRouter, RouterConfig } from "./types";
/**
* Renewable 4G Router
*
* @class
* @classdesc Renews an IP address on a device connected with Automate.
* @extends {EventEmitter}
* @implements {RenewableRouter}
*/
export declare class Router extends EventEmitter implements RenewableRouter {
/**
* Tracks the successful renewals.
* @type {Set}
* @protected
*/
protected readonly _history: Set;
/**
* Tracks the current session renewals.
* Is cleared at the end of each session.
*
* @type {Set}
* @protected
*/
protected readonly _cache: Set;
/**
* Defines some basic configuration using env file or passed in object.
* @type {RouterConfig}
* @protected
*/
protected readonly _config: RouterConfig;
/**
* Constructor
* Accepts an optional configuration if not using env file.
*
* @param {PartialRouterConfig} config
*/
constructor(config?: PartialRouterConfig);
/**
* Readonly accessor for current ip address.
*
* @return {string | undefined}
*/
get ip(): string | undefined;
/**
* Readonly accessor to show current renewal attempts.
*
* @return {number}
*/
get attempts(): number;
/**
* Allow users to observe last cached public ip.
*
* @return {string | undefined}
*/
get lastCachedIp(): string | undefined;
/**
* Public readonly accessor for history as array.
*
* @return {IpHistory[]}
*/
get history(): IpHistory[];
/**
* Inform user when a new ip has been obtained or drop if dirty address.
*
* @return {boolean}
*/
validateIp(data: IpHistory | undefined): boolean;
/**
* Return the module to a clean state.
*
* @return {Promise}
*/
init(): Promise;
/**
* Connects to the IPData API and checks the current public ip.
*
* @return {Promise}
*/
lookup(): Promise;
/**
* Primary entry point that triggers the renewal.
*
* @return {Promise}
*/
renew(): Promise;
}
//# sourceMappingURL=router.d.ts.map