///
///
///
import * as dns from 'dns';
import { Logger, LoggerOptions } from '../logger';
import { TypedEventEmitter } from '../mongo_types';
/**
* @internal
* @category Event
*/
export declare class SrvPollingEvent {
srvRecords: dns.SrvRecord[];
constructor(srvRecords: dns.SrvRecord[]);
hostnames(): Set;
}
/** @internal */
export interface SrvPollerOptions extends LoggerOptions {
srvServiceName: string;
srvMaxHosts: number;
srvHost: string;
heartbeatFrequencyMS: number;
}
/** @internal */
export declare type SrvPollerEvents = {
srvRecordDiscovery(event: SrvPollingEvent): void;
};
/** @internal */
export declare class SrvPoller extends TypedEventEmitter {
srvHost: string;
rescanSrvIntervalMS: number;
heartbeatFrequencyMS: number;
logger: Logger;
haMode: boolean;
generation: number;
srvMaxHosts: number;
srvServiceName: string;
_timeout?: NodeJS.Timeout;
/** @event */
static readonly SRV_RECORD_DISCOVERY: "srvRecordDiscovery";
constructor(options: SrvPollerOptions);
get srvAddress(): string;
get intervalMS(): number;
start(): void;
stop(): void;
schedule(): void;
success(srvRecords: dns.SrvRecord[]): void;
failure(message: string, obj?: NodeJS.ErrnoException): void;
parentDomainMismatch(srvRecord: dns.SrvRecord): void;
_poll(): void;
}
//# sourceMappingURL=srv_polling.d.ts.map