///
import { Page } from 'puppeteer';
import { Logger } from 'winston';
import { CreateConfig } from '../../config/create-config';
import { LogLevel } from '../../utils/logger';
import { CatchQRCallback, HostDevice, LoadingScreenCallback, StatusFindCallback } from '../model';
import { SocketState } from '../model/enum';
import { ScrapQrcode } from '../model/qrcode';
export declare class HostLayer {
page: Page;
readonly session: string;
readonly options: CreateConfig;
readonly logger: Logger;
protected autoCloseInterval: any;
protected autoCloseCalled: boolean;
protected isInitialized: boolean;
protected isInjected: boolean;
protected isStarted: boolean;
protected isLogged: boolean;
protected isInChat: boolean;
protected checkStartInterval?: NodeJS.Timer;
protected urlCode: string;
protected attempt: number;
catchQR?: CatchQRCallback;
statusFind?: StatusFindCallback;
onLoadingScreen?: LoadingScreenCallback;
constructor(page: Page, session?: string, options?: CreateConfig);
protected log(level: LogLevel, message: string, meta?: object): void;
protected initialize(): Promise;
protected afterPageLoad(): Promise;
protected afterPageScriptInjected(): Promise;
start(): Promise;
protected checkStart(): Promise;
protected checkQrCode(): Promise;
protected checkInChat(): Promise;
protected tryAutoClose(): void;
protected startAutoClose(time?: number | null): void;
protected cancelAutoClose(): void;
getQrCode(): Promise;
waitForQrCodeScan(): Promise;
waitForInChat(): Promise;
waitForPageLoad(): Promise;
waitForLogin(): Promise;
/**
* @category Host
* @returns Current host device details
*/
getHostDevice(): Promise;
/**
* @category Host
* @returns Current wid connected
*/
getWid(): Promise;
/**
* Retrieves WA version
* @category Host
*/
getWAVersion(): Promise;
/**
* Retrieves WA-JS version
* @category Host
*/
getWAJSVersion(): Promise;
/**
* Retrieves the connecction state
* @category Host
*/
getConnectionState(): Promise;
/**
* Retrieves if the phone is online. Please note that this may not be real time.
* @category Host
*/
isConnected(): Promise;
/**
* Check is online
* @category Host
*/
isOnline(): Promise;
/**
* Retrieves if the phone is online. Please note that this may not be real time.
* @category Host
*/
isLoggedIn(): Promise;
/**
* Retrieves Battery Level
* @category Host
*/
getBatteryLevel(): Promise;
/**
* Start phone Watchdog, forcing the phone connection verification.
*
* @category Host
* @param interval interval number in miliseconds
*/
startPhoneWatchdog(interval?: number): Promise;
/**
* Stop phone Watchdog, more details in {@link startPhoneWatchdog}
* @category Host
*/
stopPhoneWatchdog(interval: number): Promise;
/**
* Check the current session is an MultiDevice session
* @category Host
*/
isMultiDevice(): Promise;
/**
* Retrieve main interface is authenticated, loaded and synced
* @category Host
*/
isMainReady(): Promise;
/**
* Retrieve if is authenticated
* @category Host
*/
isAuthenticated(): Promise;
/**
* Retrieve if main interface is authenticated and loaded, bot not synced
* @category Host
*/
isMainLoaded(): Promise;
/**
* Retrieve if main interface is initializing
* @category Host
*/
isMainInit(): Promise;
/**
* Join or leave of WhatsApp Web beta program.
* Will return the value seted
* @category Host
*/
joinWebBeta(value: boolean): Promise;
}