@hasna/domains
Version:
Domain portfolio, registrar, marketplace, and DNS management for AI agents — CLI + MCP + HTTP API + SDK, shared account API and PostgreSQL
30 lines • 1.38 kB
TypeScript
import type { ProviderDnsRecord } from "./registrar.js";
export interface DesiredDnsState {
domain?: string;
records: ProviderDnsRecord[];
}
export type DnsPlanOperationType = "create" | "delete" | "update" | "unchanged";
export interface DnsPlanOperation {
op: DnsPlanOperationType;
record: ProviderDnsRecord;
current?: ProviderDnsRecord;
}
export interface DnsPlan {
domain: string;
creates: number;
updates: number;
deletes: number;
unchanged: number;
operations: DnsPlanOperation[];
}
export type DnsApplyBlockReason = "confirmation-required" | "delete-confirmation-required" | "delete-apply-unsupported";
export declare function normalizeDnsRecord(record: ProviderDnsRecord, domain: string): ProviderDnsRecord;
export declare function parseDesiredDnsState(input: string, domainHint?: string): DesiredDnsState;
export declare function createDnsPlan(domain: string, current: ProviderDnsRecord[], desired: ProviderDnsRecord[]): DnsPlan;
export declare function planHasChanges(plan: DnsPlan): boolean;
export declare function selectChangedDnsRecords(plan: DnsPlan, desired: ProviderDnsRecord[]): ProviderDnsRecord[];
export declare function getDnsApplyBlockReason(plan: DnsPlan, opts: {
yes?: boolean;
allowDelete?: boolean;
}, deleteSupported?: boolean): DnsApplyBlockReason | undefined;
//# sourceMappingURL=dns-plan.d.ts.map