import { pki } from "node-forge";
export declare type ForgeKeyPair = pki.rsa.KeyPair;
export declare type ForgePrivateKey = pki.rsa.PrivateKey;
export declare type ForgeCertificate = pki.Certificate;
export declare type ForgeCertificateField = pki.CertificateField;
/**
 * PKI as in public key infrastructure and x509 certificates.
 */
export interface IPki {
    keyPair: ForgeKeyPair;
    certificate: ForgeCertificate;
    certificatePem: string;
    privateKeyPem: string;
}
/**
 * Do not use this for anything in a production deployment. It's meant as a helper
 * class for development and testing purposes (enhancing developer experience).
 *
 * Secure by default is one of our core design principles and it's much harder to
 * enforce/implement that it sounds when you also do not want to ruin the ease
 * of use of the software. Dynamically pre-provisioning PKI is notoriously
 * complicated and error prone to the average user/developer.
 *
 */
export declare class SelfSignedPkiGenerator {
    create(commonName: string, parent?: IPki): IPki;
    configureCertificateParameters(keyPair: pki.rsa.KeyPair, certificate: pki.Certificate, commonName: string): pki.Certificate;
}
