import type { Domain, DomainLogger, DomainPage, ListDomainsOptions } from "./types"; export interface DomainProviderCapabilities { list: boolean; explicitVerification: boolean; managedCertificates: boolean; apexDomains: boolean; wildcardDomains: boolean; } export interface ProviderContext { signal?: AbortSignal; logger: DomainLogger; } export interface ProviderDomainInput { hostname: string; } export interface ProviderListInput { limit: number; cursor?: string; } export interface DomainProvider { readonly id: string; readonly capabilities: DomainProviderCapabilities; add(input: ProviderDomainInput, context: ProviderContext): Promise; get(input: ProviderDomainInput, context: ProviderContext): Promise; list?(input: ProviderListInput, context: ProviderContext): Promise; verify?(input: ProviderDomainInput, context: ProviderContext): Promise; remove(input: ProviderDomainInput, context: ProviderContext): Promise; } export interface DomainClientOptions { provider: DomainProvider; logger?: DomainLogger; /** Internal deterministic-test hooks. */ clock?: { now(): number; sleep(ms: number, signal?: AbortSignal): Promise; }; } export interface DomainClient { readonly provider: string; readonly capabilities: DomainProviderCapabilities; add(input: string | ({ hostname: string; } & { signal?: AbortSignal; }), options?: { signal?: AbortSignal; }): Promise; get(hostname: string, options?: { signal?: AbortSignal; }): Promise; refresh(hostname: string, options?: { signal?: AbortSignal; }): Promise; list(options?: ListDomainsOptions): Promise; verify(hostname: string, options?: { signal?: AbortSignal; }): Promise; remove(hostname: string, options?: { signal?: AbortSignal; }): Promise; waitUntilActive(hostname: string, options?: import("./types").WaitUntilActiveOptions): Promise; } //# sourceMappingURL=provider.d.ts.map