import { HttpClient, ILogger, utils } from "@certd/basic"; import { IAccess, Registrable } from "@certd/pipeline"; export type DnsProviderDefine = Registrable & { accessType: string; icon?: string; autowire?: { [key: string]: any; }; }; export type CreateRecordOptions = { domain: string; fullRecord: string; hostRecord: string; type: string; value: any; }; export type RemoveRecordOptions = { recordReq: CreateRecordOptions; // 本次创建的dns解析记录,实际上就是createRecord接口的返回值 recordRes: T; }; export type DnsProviderContext = { access: IAccess; logger: ILogger; http: HttpClient; utils: typeof utils; }; export interface IDnsProvider { onInstance(): Promise; createRecord(options: CreateRecordOptions): Promise; removeRecord(options: RemoveRecordOptions): Promise; setCtx(ctx: DnsProviderContext): void; }