/** * Exposes the WireGuard interface on top of the Generic Protocol layer * @module */ /// import { EventEmitter } from 'events'; import { RawNetlinkSocketOptions } from '../raw'; import { NetlinkSocketOptions, RequestOptions } from '../netlink'; import { Commands, Device } from './structs'; import { GenericNetlinkSocketOptions, GenericNetlinkSocket, GenericNetlinkSendOptions } from '../genl/genl'; import { genl } from '..'; export declare const WG_GENL_NAME = "wireguard"; export declare const WG_GENL_VERSION = 1; export declare const WG_KEY_LEN = 32; export interface WireGuardSocketOptions { } export interface WireGuardSendOptions extends GenericNetlinkSendOptions { } export declare class WireGuardSocket extends EventEmitter { readonly socket: GenericNetlinkSocket; private readonly familyId; constructor(socket: GenericNetlinkSocket, familyData: genl.Message, options?: WireGuardSocketOptions); private _receive; send(cmd: Commands, msg: Device, options?: WireGuardSendOptions): number; request(cmd: Commands, msg?: Device, options?: WireGuardSendOptions & RequestOptions): Promise; /** gets a wireguard interface */ getDevice(iface: number | string, options?: WireGuardSendOptions & RequestOptions): Promise; /** sets a wireguard interface */ setDevice(iface: number | string, msg: Device, options?: WireGuardSendOptions & RequestOptions): Promise; } export declare function createWireGuard(options?: WireGuardSocketOptions & GenericNetlinkSocketOptions & NetlinkSocketOptions & RawNetlinkSocketOptions): Promise;