export declare const getPrivateKeys: () => Map<any, any>;
export declare const CERT_ATTRIBUTES: {
    name: string;
    value: string;
}[];
/**
 * Generates a cryptographically secure serial number for X.509 certificates.
 *
 * Returns a hex string as expected by node-forge. Ensures the high bit is cleared
 * to create a positive ASN.1 INTEGER per RFC 5280 requirements.
 *
 * @returns {string} 16-character hex string
 */
export declare function generateSerialNumber(): string;
export declare function getCertTable(): any;
export declare function getReplicationCert(): Promise<any>;
export declare function getReplicationCertAuth(): Promise<any>;
/**
 * This is responsible for loading any certificates that are in the harperdb-config.yaml file and putting them into the hdbCertificate table.
 * @return {*}
 */
export declare function loadCertificates(): any;
export declare function getCommonName(): string;
export declare function certExtensions(): ({
    name: string;
    cA: boolean;
    critical: boolean;
    digitalSignature?: undefined;
    keyEncipherment?: undefined;
    serverAuth?: undefined;
    clientAuth?: undefined;
    client?: undefined;
    server?: undefined;
    altNames?: undefined;
} | {
    name: string;
    digitalSignature: boolean;
    keyEncipherment: boolean;
    critical: boolean;
    cA?: undefined;
    serverAuth?: undefined;
    clientAuth?: undefined;
    client?: undefined;
    server?: undefined;
    altNames?: undefined;
} | {
    name: string;
    serverAuth: boolean;
    clientAuth: boolean;
    cA?: undefined;
    critical?: undefined;
    digitalSignature?: undefined;
    keyEncipherment?: undefined;
    client?: undefined;
    server?: undefined;
    altNames?: undefined;
} | {
    name: string;
    client: boolean;
    server: boolean;
    cA?: undefined;
    critical?: undefined;
    digitalSignature?: undefined;
    keyEncipherment?: undefined;
    serverAuth?: undefined;
    clientAuth?: undefined;
    altNames?: undefined;
} | {
    name: string;
    altNames: ({
        type: number;
        ip: string;
        value?: undefined;
    } | {
        type: number;
        value: string;
        ip?: undefined;
    })[];
    cA?: undefined;
    critical?: undefined;
    digitalSignature?: undefined;
    keyEncipherment?: undefined;
    serverAuth?: undefined;
    clientAuth?: undefined;
    client?: undefined;
    server?: undefined;
})[];
export declare function setCertTable(certRecord: any): Promise<void>;
export declare function generateKeys(): Promise<{
    publicKey: any;
    privateKey: any;
}>;
export declare function getCertAuthority(): Promise<any>;
export declare function generateCertsKeys(): Promise<void>;
/**
 * Delete any existing self-signed certs (including CA) and create new ones
 * @returns {Promise<void>}
 */
export declare function renewSelfSigned(): Promise<void>;
export declare function reviewSelfSignedCert(): Promise<void>;
export declare function updateConfigCert(): void;
/**
 * Create a TLS selector that will choose the best TLS configuration/context for a given hostname
 * @param type
 * @param mtlsOptions
 * @return {(function(*, *): (*|undefined))|*}
 */
export declare function createTLSSelector(type: any, mtlsOptions?: any): any;
/**
 * List all the records in hdbCertificate table
 * @returns {Promise<*[]>}
 */
export declare function listCertificates(): Promise<any[]>;
export declare function getPrimaryHostName(cert: any): any;
export declare function hostnamesFromCert(cert: any): any;
export declare function getHostnamesFromCertificate(certificate: any): any[];
