///
import { BasePlugin } from '@opentelemetry/core';
import { Dns, DnsPluginConfig } from './types';
/**
* Dns instrumentation plugin for Opentelemetry
*/
export declare class DnsPlugin extends BasePlugin {
readonly moduleName: string;
readonly version: string;
readonly component: string;
protected _config: DnsPluginConfig;
constructor(moduleName: string, version: string);
/** Patches DNS functions. */
protected patch(): typeof import("dns");
/** Unpatches all DNS patched function. */
protected unpatch(): void;
/**
* Get the patched lookup function
*/
private _getLookup;
/**
* Creates spans for lookup operations, restoring spans' context if applied.
*/
private _getPatchLookupFunction;
/**
* Start a new span with default attributes and kind
*/
private _startDnsSpan;
/**
* Wrap lookup callback function
*/
private _wrapLookupCallback;
/**
* Safely handle "execute" callback
*/
private _safeExecute;
}
export declare const plugin: DnsPlugin;