import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as OriginCACertificatesAPI from 'cloudflare/resources/origin-ca-certificates';
import { SinglePage } from 'cloudflare/pagination';
export declare class OriginCACertificates extends APIResource {
    /**
     * Create an Origin CA certificate. Use your Origin CA Key as your User Service Key
     * when calling this endpoint ([see above](#requests)).
     */
    create(body: OriginCACertificateCreateParams, options?: Core.RequestOptions): Core.APIPromise<OriginCACertificateCreateResponse>;
    /**
     * List all existing Origin CA certificates for a given zone. Use your Origin CA
     * Key as your User Service Key when calling this endpoint
     * ([see above](#requests)).
     */
    list(options?: Core.RequestOptions): Core.PagePromise<OriginCACertificatesSinglePage, OriginCACertificate>;
    /**
     * Revoke an existing Origin CA certificate by its serial number. Use your Origin
     * CA Key as your User Service Key when calling this endpoint
     * ([see above](#requests)).
     */
    delete(certificateId: string, options?: Core.RequestOptions): Core.APIPromise<OriginCACertificateDeleteResponse>;
    /**
     * Get an existing Origin CA certificate by its serial number. Use your Origin CA
     * Key as your User Service Key when calling this endpoint
     * ([see above](#requests)).
     */
    get(certificateId: string, options?: Core.RequestOptions): Core.APIPromise<OriginCACertificateGetResponse>;
}
export declare class OriginCACertificatesSinglePage extends SinglePage<OriginCACertificate> {
}
export interface OriginCACertificate {
    /**
     * The Certificate Signing Request (CSR). Must be newline-encoded.
     */
    csr: string;
    /**
     * Array of hostnames or wildcard names (e.g., \*.example.com) bound to the
     * certificate.
     */
    hostnames: Array<unknown>;
    /**
     * Signature type desired on certificate ("origin-rsa" (rsa), "origin-ecc" (ecdsa),
     * or "keyless-certificate" (for Keyless SSL servers).
     */
    request_type: 'origin-rsa' | 'origin-ecc' | 'keyless-certificate';
    /**
     * The number of days for which the certificate should be valid.
     */
    requested_validity: 7 | 30 | 90 | 365 | 730 | 1095 | 5475;
    /**
     * Identifier
     */
    id?: string;
    /**
     * The Origin CA certificate. Will be newline-encoded.
     */
    certificate?: string;
    /**
     * When the certificate will expire.
     */
    expires_on?: string;
}
export type OriginCACertificateCreateResponse = unknown | string;
export interface OriginCACertificateDeleteResponse {
    /**
     * Identifier
     */
    id?: string;
}
export type OriginCACertificateGetResponse = unknown | string;
export interface OriginCACertificateCreateParams {
    /**
     * The Certificate Signing Request (CSR). Must be newline-encoded.
     */
    csr?: string;
    /**
     * Array of hostnames or wildcard names (e.g., \*.example.com) bound to the
     * certificate.
     */
    hostnames?: Array<unknown>;
    /**
     * Signature type desired on certificate ("origin-rsa" (rsa), "origin-ecc" (ecdsa),
     * or "keyless-certificate" (for Keyless SSL servers).
     */
    request_type?: 'origin-rsa' | 'origin-ecc' | 'keyless-certificate';
    /**
     * The number of days for which the certificate should be valid.
     */
    requested_validity?: 7 | 30 | 90 | 365 | 730 | 1095 | 5475;
}
export declare namespace OriginCACertificates {
    export import OriginCACertificate = OriginCACertificatesAPI.OriginCACertificate;
    export import OriginCACertificateCreateResponse = OriginCACertificatesAPI.OriginCACertificateCreateResponse;
    export import OriginCACertificateDeleteResponse = OriginCACertificatesAPI.OriginCACertificateDeleteResponse;
    export import OriginCACertificateGetResponse = OriginCACertificatesAPI.OriginCACertificateGetResponse;
    export import OriginCACertificatesSinglePage = OriginCACertificatesAPI.OriginCACertificatesSinglePage;
    export import OriginCACertificateCreateParams = OriginCACertificatesAPI.OriginCACertificateCreateParams;
}
//# sourceMappingURL=origin-ca-certificates.d.ts.map