import { HttpClient, ILogger, utils } from "@certd/basic"; import { IAccess, IAccessService, IServiceGetter, PageRes, PageSearch, Registrable } from "@certd/pipeline"; export type DnsProviderDefine = Registrable & { accessType: string; icon?: string; dependPlugins?: Record; dependPackages?: Record; }; export type CreateRecordOptions = { domain: string; fullRecord: string; hostRecord: string; type: string; value: any; }; export type RemoveRecordOptions = { recordReq: CreateRecordOptions; recordRes: T; }; export type DnsProviderContext = { access: IAccess; logger: ILogger; http: HttpClient; utils: typeof utils; domainParser: IDomainParser; serviceGetter: IServiceGetter; accessGetter?: IAccessService; define?: DnsProviderDefine; }; export type DomainRecord = { id: string; domain: string; }; export type DnsResolveRecord = { id: string; hostRecord: string; fullRecord: string; type: string; value: string; }; export interface IDnsProvider { onInstance(): Promise; /** * 中文转英文 * @param domain */ punyCodeEncode(domain: string): string; /** * 转中文域名 * @param domain */ punyCodeDecode(domain: string): string; createRecord(options: CreateRecordOptions): Promise; removeRecord(options: RemoveRecordOptions): Promise; setCtx(ctx: DnsProviderContext): Promise; usePunyCode(): boolean; getDomainListPage(pager: PageSearch): Promise>; getRecordListPage?(domain: string, pager: PageSearch): Promise>; } export interface ISubDomainsGetter { getSubDomains(): Promise; hasSubDomain(domain: string): Promise; } export interface IDomainParser { parse(fullDomain: string): Promise; } export type DnsVerifier = { dnsProviderType?: string; dnsProviderAccessId?: number; }; export type CnameVerifier = { hostRecord: string; domain: string; recordValue: string; }; export type HttpVerifier = { httpUploaderType: string; httpUploaderAccess: number; httpUploadRootDir: string; }; export type DomainVerifier = { domain: string; mainDomain: string; type: string; dns?: DnsVerifier; cname?: CnameVerifier; http?: HttpVerifier; }; export type DomainVerifiers = { [key: string]: DomainVerifier; }; export interface IDomainVerifierGetter { getVerifiers(domains: string[]): Promise; } //# sourceMappingURL=api.d.ts.map