@hasna/domains
Version:
Domain portfolio, registrar, marketplace, and DNS management for AI agents — CLI + MCP + HTTP API + SDK, shared account API and PostgreSQL
34 lines • 2.52 kB
TypeScript
import { type TypedQueryClient } from "../generated/storage-kit/index.js";
import { type DomainProvisioningJob, type DomainDnsReconciliation, type DomainProvisioningProviderState, type DomainProvisioningRequest, type DomainProvisioningStore, type PortfolioDomainRegistration, type RegisteredDomainDetail, type HostedDnsRecord } from "../lib/provisioning.js";
export declare class DomainsProvisioningRepo implements DomainProvisioningStore {
private readonly db;
private readonly domains;
constructor(db: TypedQueryClient);
private assertCanonicalRequestHash;
private resolveUniqueReservationConflict;
reserve(request: DomainProvisioningRequest, requestHash: string): Promise<DomainProvisioningJob>;
reserveAdoption(request: DomainProvisioningRequest, requestHash: string, detail: RegisteredDomainDetail, initialProviderState?: DomainProvisioningProviderState): Promise<DomainProvisioningJob>;
get(id: string): Promise<DomainProvisioningJob | null>;
getByName(name: string): Promise<DomainProvisioningJob | null>;
getPortfolioRegistration(name: string): Promise<PortfolioDomainRegistration | null>;
listRunnable(limit: number): Promise<DomainProvisioningJob[]>;
claim(id: string, leaseToken: string, leaseUntil: string): Promise<DomainProvisioningJob | null>;
update(id: string, patch: Partial<Pick<DomainProvisioningJob, "status" | "provider_state" | "attempts" | "error" | "lease_token" | "lease_until">>, leaseToken?: string): Promise<DomainProvisioningJob | null>;
markPortfolioReady(job: DomainProvisioningJob, detail: RegisteredDomainDetail): Promise<void>;
listDnsReconciliations(name: string, query: {
id?: string;
idempotency_key?: string;
limit: number;
offset: number;
}): Promise<DomainDnsReconciliation[]>;
reserveDnsReconciliation(input: {
job: DomainProvisioningJob;
idempotencyKey: string;
requestHash: string;
records: HostedDnsRecord[];
}): Promise<DomainDnsReconciliation>;
withDnsZoneLock<T>(zoneId: string, work: (store: DomainProvisioningStore) => Promise<T>): Promise<T>;
claimDnsReconciliation(id: string, leaseToken: string, leaseUntil: string): Promise<DomainDnsReconciliation | null>;
updateDnsReconciliation(id: string, patch: Partial<Pick<DomainDnsReconciliation, "status" | "result" | "error" | "lease_token" | "lease_until">>, leaseToken: string): Promise<DomainDnsReconciliation | null>;
}
//# sourceMappingURL=provisioning-repo.d.ts.map