import { IWifiDevice } from '../Network/INetworkInfo';
import { WifiEvent } from './IWifiEvent';
export default interface IWifi {
    isClientEnabled(): Promise<boolean>;
    enableClient(): Promise<void>;
    isAPEnabled(): Promise<boolean>;
    enableAP(ssid: string, password: string): Promise<void>;
    disable(): Promise<void>;
    getConnectedTo(): Promise<IWifiDevice | null>;
    connect(ssid: string, password?: string, options?: IWifiConnectOptions): Promise<void>;
    disconnect(): Promise<void>;
    getCountry(): Promise<string | null>;
    setCountry(countryCode: string): Promise<void>;
    scanDevices(): Promise<IScannedDevice[]>;
    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: string;
    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';
export interface IWifiConnectOptions {
    hidden?: boolean;
    securityType?: WifiEncryptionType;
    eap?: {
        method: EAPMethod;
        identity: string;
        anonymousIdentity?: string;
        passphrase: string;
        phase2Auth?: EAPPhase2Auth;
        useCACert?: boolean;
    };
}
export declare const VIWifiConnectOptions: {
    hidden: string;
    securityType: string;
    eap: {
        method: string;
        identity: string;
        anonymousIdentity: string;
        passphrase: string;
        phase2Auth: string;
        useCACert: string;
    };
};
