import { QueryType } from "./core/protocol"; export interface DnsRecord { type: QueryType; ttl?: number; } export declare type IPv4Addr = string; export declare type IPv6Addr = string; export interface ARecord extends DnsRecord { type: "A"; target: IPv4Addr; } export declare const createARecord: (target: IPv4Addr) => ARecord; export interface AaaaRecord extends DnsRecord { type: "AAAA"; target: IPv6Addr; } export declare const createAaaaRecord: (target: IPv6Addr) => AaaaRecord; export interface CnameRecord extends DnsRecord { type: "CNAME"; target: string; } export declare const createCnameRecord: (target: string) => CnameRecord; export interface MxRecord extends DnsRecord { type: "MX"; exchange: string; priority: number; } export declare const createMxRecord: (record: Pick & Partial) => MxRecord; export interface NsRecord extends DnsRecord { type: "NS"; target: string; } export declare const createNsRecord: (target: string) => NsRecord; export interface TxtRecord extends DnsRecord { type: "TXT"; target: string; } export declare const createTxtRecord: (target: string) => TxtRecord; export interface SoaRecord extends DnsRecord { type: "SOA"; host: string; admin: string; serial: number; refresh: number; retry: number; expire: number; ttl: number; } export declare const createSoaRecord: (record: Pick & Partial) => SoaRecord; export interface SrvRecord extends DnsRecord { type: "SRV"; target: string; port: number; weight: number; priority: number; } export declare const createSrvRecord: (record: Pick & Partial) => SrvRecord;