/** * This module implements the Generic Netlink protocol on top of `netlink`. * @module */ /// import { EventEmitter } from 'events'; import { MessageInfo, RawNetlinkSocketOptions } from '../raw'; import { NetlinkSocket, NetlinkSocketOptions, NetlinkSendOptions, RequestOptions } from '../netlink'; import { NetlinkMessage } from '../structs'; import { Commands, Message } from './structs'; export declare const GENL_NAMSIZ = 16; export declare const GENL_MIN_ID = 16; export declare const GENL_MAX_ID = 1023; export declare const GENL_ID_CTRL = 16; export declare const GENL_ID_VFS_DQUOT: number; export declare const GENL_ID_PMCRAID: number; export declare const GENL_START_ALLOC: number; export interface GenericNetlinkSocketOptions { } export interface GenericNetlinkSendOptions extends NetlinkSendOptions { } export interface GenericNetlinkMessage { flags: number; seq: number; port: number; family: number; cmd: number; version: number; data: Buffer; } export declare const CTRL_VERSION = 1; /** * TODO * * This socket silently discards invalid messages (see `invalid` event). */ export declare class GenericNetlinkSocket extends EventEmitter { readonly socket: NetlinkSocket; constructor(socket: NetlinkSocket, options?: GenericNetlinkSocketOptions); protected parseMessage(omsg: NetlinkMessage): GenericNetlinkMessage; private _receive; send(family: number, cmd: number, version: number, data: Uint8Array | Uint8Array[], options?: GenericNetlinkSendOptions): number; request(family: number, cmd: number, version: number, data: Uint8Array | Uint8Array[], options?: GenericNetlinkSendOptions & RequestOptions): Promise<[GenericNetlinkMessage[], MessageInfo]>; /** * Send a request to the controller * @param cmd * @param msg * @param options */ ctrlRequest(cmd: Commands, msg?: Message, options?: GenericNetlinkSendOptions & RequestOptions): Promise; } export declare function createGenericNetlink(options?: GenericNetlinkSocketOptions & NetlinkSocketOptions & RawNetlinkSocketOptions): GenericNetlinkSocket;