import { IV2GCertificateAuthorityClient } from './interface';
import { SystemConfig } from '@citrineos/base';
import { ILogObj, Logger } from 'tslog';
export declare class Hubject implements IV2GCertificateAuthorityClient {
    private readonly _baseUrl;
    private readonly _isoVersion;
    private readonly _tokenUrl;
    private _logger;
    constructor(config: SystemConfig, logger?: Logger<ILogObj>);
    /**
     * Retrieves a signed certificate based on the provided CSR.
     * DOC: https://hubject.stoplight.io/docs/open-plugncharge/486f0b8b3ded4-simple-enroll-iso-15118-2-and-iso-15118-20
     *
     * @param {string} csrString - The certificate signing request from SignCertificateRequest.
     * @return {Promise<string>} The signed certificate without header and footer.
     */
    getSignedCertificate(csrString: string): Promise<string>;
    /**
     * Retrieves the CA certificates including sub CAs and root CA.
     * DOC: https://hubject.stoplight.io/docs/open-plugncharge/e246aa213bc22-obtaining-ca-certificates-iso-15118-2-and-iso-15118-20
     *
     * @return {Promise<string>} The CA certificates.
     */
    getCACertificates(): Promise<string>;
    getSignedContractData(xsdMsgDefNamespace: string, certificateInstallationReq: string): Promise<string>;
    /**
     * Retrieves all root certificates from Hubject.
     * Refer to https://hubject.stoplight.io/docs/open-plugncharge/fdc9bdfdd4fb2-get-all-root-certificates
     *
     * @return {Promise<string[]>} Array of root certificate.
     */
    getRootCertificates(): Promise<string[]>;
    private _getAuthorizationToken;
    /**
     * Parses the Bearer token from the input token
     * which is expected to be in the format of "XXXXBearer <token>\nXXXXX"
     *
     * @param {string} token - The input token string to parse.
     * @return {string} The parsed Bearer token string.
     */
    private _parseBearerToken;
}
