import { State } from '../../shared/State';
import { NoIdObjectSkeletonInterface } from '../ApiTypes';
/**
 * CSR object
 */
export type CSR = {
    /**
     * The algorithm for the private key. The encryption algorithm will either be
     * RSA-2048 or ECDSA P-256 depending on the algorithm choice. The default is RSA-2048.
     */
    algorithm: 'rsa' | 'ecdsa';
    /**
     * Category of business, such as "Private Organization", “Government Entity”,
     * “Business Entity”, or “Non-Commercial Entity”. Relevant for EV certificates.
     */
    businessCategory: string;
    /**
     * City
     */
    city: string;
    /**
     * Domain name that the SSL certificate is securing
     */
    commonName: string;
    /**
     * Two-letter ISO-3166 country code: string[A-Z]{2}
     */
    country: string;
    /**
     * Email: string^\S+@\S+$
     */
    email: string;
    /**
     * This field contains only information relevant to the Jurisdiction
     * of Incorporation or Registration. Relevant for EV certificates.
     */
    jurisdictionCity: string;
    /**
     * This field contains only information relevant to the Jurisdiction
     * of Incorporation or Registration. Relevant for EV certificates.
     */
    jurisdictionCountry: string;
    /**
     * This field contains only information relevant to the Jurisdiction
     * of Incorporation or Registration. Relevant for EV certificates.
     */
    jurisdictionState: string;
    /**
     * Full name of company
     */
    organization: string;
    /**
     * Company section or department
     */
    organizationalUnit: string;
    /**
     * Zip code
     */
    postalCode: string;
    /**
     * The Registration (or similar) Number assigned to the Subject by the Incorporating
     * or Registration Agency in its Jurisdiction of Incorporation or Registration.
     * Relevant for EV certificates.
     */
    serialNumber: string;
    /**
     * State
     */
    state: string;
    /**
     * Address
     */
    streetAddress: string;
    /**
     * Additional domain or domains that the SSL certificate is securing
     */
    subjectAlternativeNames: string[];
};
/**
 * CSR response object skeleton
 */
export type CSRResponse = NoIdObjectSkeletonInterface & {
    /**
     * The algorithm for the private key. The encryption algorithm will either be RSA-2048 or ECDSA P-256 depending on the algorithm choice. The default is RSA-2048.
     */
    algorithm: string;
    /**
     * The ID of the certificate created from this CSR if the CSR has been completed.
     */
    certificateID: string;
    /**
     * Creation timestamp: eg '2006-01-02T15:04:05Z07:00'
     */
    createdDate: string;
    /**
     * The unique identifier for the CSR
     */
    id: string;
    /**
     * PEM formatted CSR.
     */
    request: string;
    /**
     * the CSR subject
     */
    subject: string;
    /**
     * Additional domain or domains that the SSL certificate is securing
     */
    subjectAlternativeNames: string[];
};
/**
 * Get all CSRs
 * @returns {Promise<CSRResponse[]>} a promise that resolves to an array of CSRResponse objects
 */
export declare function getCSRs({ state, }: {
    state: State;
}): Promise<CSRResponse[]>;
/**
 * Create CSR
 * @param {Object} params Parameters object.
 * @param {CSR} params.csr CSR object
 * @param {State} params.state State object.
 * @returns {Promise<CSRResponse>} a promise that resolves to a CSRResponse object.
 */
export declare function createCSR({ csr, state, }: {
    csr: CSR;
    state: State;
}): Promise<CSRResponse>;
/**
 * Delete CSR by id
 * @param {Object} params Parameters object.
 * @param {string} params.csrId The unique identifier for the CSR
 * @param {State} params.state State object.
 * @returns {Promise<CSRResponse>} a promise that resolves to a CSRResponse object
 */
export declare function deleteCSR({ csrId, state, }: {
    csrId: string;
    state: State;
}): Promise<CSRResponse>;
/**
 * Get CSR by id
 * @param {Object} params Parameters object.
 * @param {string} params.csrId ID of the CSR.
 * @param {State} params.state State object.
 * @returns {Promise<CSRResponse>} a promise that resolves to a CSRResponse object
 */
export declare function getCSR({ csrId, state, }: {
    csrId: string;
    state: State;
}): Promise<CSRResponse>;
/**
 * Update CSR
 * @param {Object} params Parameters object.
 * @param {string} params.csrId ID of the CSR
 * @param {string} params.certificate The matching signed certificate for the request. This should only be set on update requests to upload the certificate.
 * @param {State} params.state State object.
 * @returns {Promise<CSRResponse>} a promise that resolves to a CSRResponse object.
 */
export declare function updateCSR({ csrId, certificate, state, }: {
    csrId: string;
    certificate: string;
    state: State;
}): Promise<CSRResponse>;
//# sourceMappingURL=EnvCSRsApi.d.ts.map