///
import { ResourceRecord } from "../decode/types.js";
import { MulticastInterface } from "./multicast_interface.js";
export type RespondingRecord = ResourceRecord & {
/** Records which should be included in the additional section of the DNS message when this record is used in a response. */
additional?: ResourceRecord[];
};
export type RespondOpts = {
/** The DNS records a responder wants to be authoritative for */
proposedRecords: RespondingRecord[];
multicastInterface: MulticastInterface;
signal?: AbortSignal;
};
/** Runs a multicast DNS responder for the given resource records.
*
* Returns a promise that will reject when:
* - Probing for proposed records fails
* - Another responder starts responding with records our responder previously lay claim to.
*/
export declare function respond(opts: RespondOpts): Promise;
/** Compare two records to determine lexicographical order. */
export declare function recordSort(a: ResourceRecord, b: ResourceRecord): 1 | 0 | -1;
/** Checks if two records conflict with each other.
*
* This is when the have the same name and type, but different RDATA.
*/
export declare function isConflicting(a: ResourceRecord, b: ResourceRecord): boolean;