import { IWifiDevice } from '../Network/INetworkInfo'; import { WifiEvent } from './IWifiEvent'; export default interface IWifi { isClientEnabled(): Promise; enableClient(): Promise; isAPEnabled(): Promise; enableAP(ssid: string, password: string): Promise; disable(): Promise; getConnectedTo(): Promise; connect(ssid: string, password?: string, options?: IWifiConnectOptions): Promise; disconnect(): Promise; getCountry(): Promise; setCountry(countryCode: string): Promise; scanDevices(): Promise; on(event: WifiEvent, listener: (...args: []) => void): void; once(event: WifiEvent, listener: (...args: []) => void): void; removeListener(event: WifiEvent, listener: (...args: []) => void): void; removeAllListeners(event?: WifiEvent): void; } /** * Interface representing a scanned Wi-Fi device. */ export interface IScannedDevice { /** SSID of the Wi-Fi network */ ssid: string; /** If Wi-Fi SSID is encrypted */ encrypted: boolean; } export type WifiEncryptionType = 'OPEN' | 'WEP' | 'WPA2' | 'WPA2_WPA_MIXED' | 'WPA3' | '802.1X_EAP'; export type EAPMethod = 'PEAP' | 'TLS' | 'TTLS'; export type EAPPhase2Auth = 'PAP' | 'MSCHAP' | 'MSCHAPV2' | 'GTC' | 'CHAP'; /** * Options for connecting to a Wi-Fi network. */ export interface IWifiConnectOptions { /** The type of security/encryption used by the network. */ securityType?: WifiEncryptionType; /** Whether the network is hidden. */ hidden?: boolean; /** Authentication details for networks that require EAP. */ eap?: T; } interface IEAPBase { /** Username or identity for authentication. */ identity: string; /** Password or passphrase for authentication. */ identityPassword?: string; /** Optional domain for server certificate validation. */ domain?: string; } interface IEAP_PEAP extends IEAPBase { /** The type of EAP authentication to use. */ method: 'PEAP'; /** Anonymous/outer identity used for initial authentication before the encrypted tunnel is established. */ anonymousIdentity?: string; /** Secondary authentication method.*/ phase2Auth?: EAPPhase2Auth; /** Whether to use a CA certificate for authentication. */ useCACert: boolean; /** CA certificate in PEM format */ caCertificate?: string; } interface IEAP_TTLS extends IEAPBase { /** The type of EAP authentication to use. */ method: 'TTLS'; /** Anonymous/outer identity used for initial authentication before the encrypted tunnel is established. */ anonymousIdentity?: string; /** Secondary authentication method. */ phase2Auth?: EAPPhase2Auth; /** Whether to use a CA certificate for authentication. */ useCACert: boolean; /** CA certificate in PEM format */ caCertificate?: string; } interface IEAP_TLS extends IEAPBase { /** The type of EAP authentication to use. */ method: 'TLS'; /** CA certificate in PEM format, if required. */ caCertificate: string; /** Client certificate in PEM format, if required. */ clientCertificate: string; /** Private key in PEM format, if required. */ privateKey: string; /** Password for the private key, if it's encrypted. */ privateKeyPassword?: string; } export type IEAPConfig = IEAP_PEAP | IEAP_TTLS | IEAP_TLS; export declare const VIWifiConnectOptions: { hidden: string; securityType: string; eap: { method: string; identity: string; identityPassword: string; anonymousIdentity: string; domain: string; phase2Auth: string; useCACert: string; caCertificate: string; clientCertificate: string; privateKey: string; privateKeyPassword: string; }; }; export {};