import { DNS_RECORD_TYPE } from "./types/dns"; export type ValidationResult = { valid: true; } | { valid: false; reason: string; }; /** * Throws a PorkbunValidationError if the validation result is invalid. */ export declare function assertValid(result: ValidationResult, field: string, value?: unknown): void; /** * Validates a domain name format. * @example validateDomain("example.com") // valid * @example validateDomain("sub.example.com") // valid */ export declare const validateDomain: (domain: string) => ValidationResult; /** * Validates a subdomain format. * Empty string is valid (represents root domain). * @example validateSubdomain("www") // valid * @example validateSubdomain("") // valid (root domain) * @example validateSubdomain("*") // valid (wildcard) */ export declare const validateSubdomain: (subdomain: string) => ValidationResult; /** * Validates a TTL value. * Must be an integer >= 600 (Porkbun minimum). */ export declare const validateTTL: (ttl: number) => ValidationResult; /** * Validates a priority value for MX/SRV records. * Must be an integer between 0-65535. */ export declare const validatePriority: (prio: string) => ValidationResult; /** * Validates a record ID. * Must be a non-empty string. */ export declare const validateRecordId: (recordId: string) => ValidationResult; /** * Validates an IPv4 address. * @example validateIPv4("192.168.1.1") // valid */ export declare const validateIPv4: (ip: string) => ValidationResult; /** * Validates an IPv6 address. * @example validateIPv6("2001:db8::1") // valid */ export declare const validateIPv6: (ip: string) => ValidationResult; /** * Validates an IP address (IPv4 or IPv6). */ export declare const validateIP: (ip: string) => ValidationResult; /** * Validates a URL for URL forwarding. * Must be a valid http or https URL. */ export declare const validateUrl: (url: string) => ValidationResult; /** * Validates a hostname (for nameservers, MX targets, etc.). */ export declare const validateHostname: (hostname: string) => ValidationResult; /** * Validates a forward ID. */ export declare const validateForwardId: (forwardId: string) => ValidationResult; /** * Validates URL forward type. */ export declare const validateForwardType: (type: string) => ValidationResult; /** * Validates yes/no string values. */ export declare const validateYesNo: (value: string) => ValidationResult; /** * Validates a DNS record type. * @example validateDnsRecordType("A") // valid * @example validateDnsRecordType("INVALID") // invalid */ export declare const validateDnsRecordType: (type: string) => ValidationResult; /** * Validates DNS record content based on record type. */ export declare const validateDnsContent: (type: `${DNS_RECORD_TYPE}`, content: string) => ValidationResult; /** * Validates an array of nameservers. */ export declare const validateNameservers: (ns: string[]) => ValidationResult; /** * Validates an array of IP addresses (for glue records). */ export declare const validateIPs: (ips: string[]) => ValidationResult; //# sourceMappingURL=validation.d.ts.map