import { DnsRecordDoc } from '../db/documents/classes.dns-record.doc.js'; import type { IEmailDnsRecordIntent } from '../../dist_ts_interfaces/data/email-domain.js'; import { type IMailDnsTxtPolicyResult } from './mail-dns-txt-policy.js'; export interface IMailDnsMutationClient { createRecord(args: { domainId: string; name: string; type: 'MX' | 'TXT' | 'A' | 'AAAA'; value: string; ttl: number; createdBy: string; managedBy: string; managedOwnerId: string; managedRecordKey: string; }): Promise<{ success: boolean; id?: string; message?: string; }>; updateRecord(args: { id: string; name?: string; type?: 'MX' | 'TXT' | 'A' | 'AAAA'; value?: string; ttl?: number; }): Promise<{ success: boolean; message?: string; }>; deleteRecord(id: string): Promise<{ success: boolean; message?: string; }>; } export interface IReconcileMailDnsSingletonOptions { intent: IEmailDnsRecordIntent; rrset: DnsRecordDoc[]; dnsManager: IMailDnsMutationClient; managedBy: string; createdBy: string; evaluate: (intent: IEmailDnsRecordIntent, values: string[]) => Promise; } export declare function applyMailDnsVerificationResult(intent: IEmailDnsRecordIntent, result: IMailDnsTxtPolicyResult, phase: 'reconcile' | 'verify'): void; /** * Reconcile SPF, DMARC, and DKIM singleton TXT records without adopting or * mutating operator policy. Returns false for non-singleton intents. */ export declare function reconcileMailDnsSingleton(options: IReconcileMailDnsSingletonOptions): Promise;