import { ID } from '@datorama/akita'; import { Observable } from 'rxjs'; export interface ICertificateInitDTO { id: string; name: string; } export interface ICertificateFullDTO { id: string; Name: string; IssuerName: string; Subjectname: string; Version: string; SerialNumber: string; Thumbprint: string; ValidFromDate: Date; ValidToDate: Date; HasPrivateKey: boolean; IsValid: boolean; Subject: { [name: string]: string; }; } export interface IKep extends ICertificateFullDTO { pluginName?: string; className?: string; disabled?: boolean; sign(base64: string): Observable; export(): Observable; } export interface IPluginInstance { init: () => any; listCertificates: () => Promise; bind: () => Promise; certificateInfo: (id: string) => Promise; signData: (base64: string, thumbprint: string) => Promise; readCertificate: (thumbprint: string) => Promise; } export interface IPlugin { id: ID; name: string; shortName: string; className: string; plugin: IPluginInstance; imagePath: string; imagePathInactive: string; init: any; certs: IKep[]; client: string; downloadLink: string; instructionLink: string; err: string; } export interface IPluginIntermediateConv extends IPlugin { certs: any; } export interface IPluginIntermediate extends IPluginIntermediateConv { certs: ICertificateInitDTO[] | ICertificateFullDTO[]; } export interface IPluginReport { browserId: string; webClient: string; pluginList: { pluginName: string; pluginVersion: string; certificateList: IKep[]; }[]; } export declare function createPlugin({ name, plugin, shortName, className, imagePath, imagePathInactive, downloadLink, instructionLink }: Partial): IPlugin; export declare const defaultPlugins: IPlugin[];