interface SoaType { name?: string; ttl?: number | string; minimum?: number; expire?: number; retry?: number; refresh?: number; serial?: number; rname?: string; mname?: string; } interface NSType { name: string; ttl?: number; host: string; fullname?: string; } interface AType { name: string; ttl?: number; ip: string; } interface CNAMEType { name: string; ttl?: number; alias: string; } interface MXType { name: string; ttl?: number; host: string; preference: number; } interface TXTType { name: string; ttl?: number; txt: string | string[]; } interface SRVType { name: string; ttl?: number; priority: number; weight: number; port: number; target: string; } interface SPFType { name: string; ttl?: number; data: string; } interface URIType { name: string; ttl?: number; priority: number; weight: number; target: string; } interface ZoneFileObject { $origin?: string; $ttl?: number; soa?: SoaType; ns?: NSType[]; a?: AType[]; aaaa?: AType[]; cname?: CNAMEType[]; mx?: MXType[]; ptr?: NSType[]; txt?: TXTType[]; srv?: SRVType[]; spf?: SPFType[]; uri?: URIType[]; $domain?: string; } declare function parseZoneFile(text: string): ZoneFileObject; declare function makeProfileZoneFile(origin: string, tokenFileUrl: string): string; declare function makeZoneFile(jsonZoneFile: ZoneFileObject, template?: string): string; declare function getZoneFileTemplate(): string; export { AType, CNAMEType, MXType, NSType, SPFType, SRVType, SoaType, TXTType, URIType, ZoneFileObject, getZoneFileTemplate, makeProfileZoneFile, makeZoneFile, parseZoneFile };