/**
* 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;