import { CertificateCreationOptions, CertificateCreationResult, CertificateSubjectReadResult, CSRCreationOptions, HashFunction, ModuleConfiguration, Pkcs12CreationOptions, Pkcs12ReadOptions, PrivateKeyCreationOptions } from 'pem';
import { Observable } from 'rxjs';
export interface PrivateKeyCreationResult {
    key: string;
}
export interface PublicKeyCreationResult {
    publicKey: string;
}
export interface KeyPairCreationResult {
    key: string;
    publicKey: string;
}
export interface DhParamKeyCreationResult {
    dhparam: any;
}
export interface EcParamKeyCreationResult {
    ecparam: any;
}
export interface CSRCreationResult {
    csr: string;
    clientKey: string;
}
export interface FingerprintResult {
    fingerprint: string;
}
export interface ModulusResult {
    modulus: any;
}
export interface DhParamInfoResult {
    size: any;
    prime: any;
}
export interface PKCS12CreationResult {
    pkcs12: any;
}
export interface PKCS12ReadResult {
    key: string;
    cert: string;
    ca: string[];
}
export declare class PEM {
    private _config?;
    constructor(_config?: ModuleConfiguration);
    createPrivateKey(keyBitsize?: number, options?: PrivateKeyCreationOptions): Observable<PrivateKeyCreationResult>;
    createDhparam(keyBitsize?: number): Observable<DhParamKeyCreationResult>;
    createEcparam(keyName?: string, paramEnc?: string, noOut?: boolean): Observable<EcParamKeyCreationResult>;
    createCSR(options?: CSRCreationOptions): Observable<CSRCreationResult>;
    createCertificate(options?: CertificateCreationOptions): Observable<CertificateCreationResult>;
    readCertificateInfo(certificate: string): Observable<CertificateSubjectReadResult>;
    getPublicKey(certificate: string): Observable<PublicKeyCreationResult>;
    createKeyPair(keyBitsize?: number, options?: PrivateKeyCreationOptions): Observable<KeyPairCreationResult>;
    getFingerprint(certificate: string, hash?: HashFunction): Observable<FingerprintResult>;
    getModulus(certificate: string, password?: string): Observable<ModulusResult>;
    getDhparamInfo(dh: string): Observable<DhParamInfoResult>;
    createPkcs12(key: string, certificate: string, password: string, options?: Pkcs12CreationOptions): Observable<PKCS12CreationResult>;
    readPkcs12(bufferOrPath: string, options?: Pkcs12ReadOptions): Observable<PKCS12ReadResult>;
    checkPkcs12(bufferOrPath: string, passphrase?: string): Observable<boolean>;
    verifySigningChain(certificate: string, ca: string[]): Observable<boolean>;
    checkCertificate(certificate: string, passphrase?: string): Observable<boolean>;
}
export { CertificateCreationOptions, CertificateCreationResult, CertificateSubjectReadResult, CSRCreationOptions, HashFunction, Pkcs12CreationOptions, Pkcs12ReadOptions, PrivateKeyCreationOptions, ModuleConfiguration };
