import * as Core from 'cloudflaredev/core';
import { APIResource } from 'cloudflaredev/resource';
import * as CertificatePacksAPI from 'cloudflaredev/resources/ssl/certificate-packs/certificate-packs';
import * as OrderAPI from 'cloudflaredev/resources/ssl/certificate-packs/order';
import * as QuotaAPI from 'cloudflaredev/resources/ssl/certificate-packs/quota';
import { SinglePage } from 'cloudflaredev/pagination';
export declare class CertificatePacks extends APIResource {
    order: OrderAPI.Order;
    quota: QuotaAPI.Quota;
    /**
     * For a given zone, list all active certificate packs.
     */
    list(params: CertificatePackListParams, options?: Core.RequestOptions): Core.PagePromise<CertificatePackListResponsesSinglePage, CertificatePackListResponse>;
    /**
     * For a given zone, delete an advanced certificate pack.
     */
    delete(certificatePackId: string, params: CertificatePackDeleteParams, options?: Core.RequestOptions): Core.APIPromise<CertificatePackDeleteResponse>;
    /**
     * For a given zone, restart validation for an advanced certificate pack. This is
     * only a validation operation for a Certificate Pack in a validation_timed_out
     * status.
     */
    edit(certificatePackId: string, params: CertificatePackEditParams, options?: Core.RequestOptions): Core.APIPromise<CertificatePackEditResponse>;
    /**
     * For a given zone, get a certificate pack.
     */
    get(certificatePackId: string, params: CertificatePackGetParams, options?: Core.RequestOptions): Core.APIPromise<CertificatePackGetResponse>;
}
export declare class CertificatePackListResponsesSinglePage extends SinglePage<CertificatePackListResponse> {
}
export type Host = string;
export type HostParam = string;
/**
 * The number of days for which the certificate should be valid.
 */
export type RequestValidity = 7 | 30 | 90 | 365 | 730 | 1095 | 5475;
/**
 * The number of days for which the certificate should be valid.
 */
export type RequestValidityParam = 7 | 30 | 90 | 365 | 730 | 1095 | 5475;
/**
 * Status of certificate pack.
 */
export type Status = 'initializing' | 'pending_validation' | 'deleted' | 'pending_issuance' | 'pending_deployment' | 'pending_deletion' | 'pending_expiration' | 'expired' | 'active' | 'initializing_timed_out' | 'validation_timed_out' | 'issuance_timed_out' | 'deployment_timed_out' | 'deletion_timed_out' | 'pending_cleanup' | 'staging_deployment' | 'staging_active' | 'deactivating' | 'inactive' | 'backup_issued' | 'holding_deployment';
/**
 * Validation method in use for a certificate pack order.
 */
export type ValidationMethod = 'http' | 'cname' | 'txt';
export type CertificatePackListResponse = unknown;
export interface CertificatePackDeleteResponse {
    /**
     * Identifier
     */
    id?: string;
}
export interface CertificatePackEditResponse {
    /**
     * Identifier
     */
    id?: string;
    /**
     * Certificate Authority selected for the order. For information on any certificate
     * authority specific details or restrictions
     * [see this page for more details.](https://developers.cloudflare.com/ssl/reference/certificate-authorities)
     */
    certificate_authority?: 'google' | 'lets_encrypt';
    /**
     * Whether or not to add Cloudflare Branding for the order. This will add
     * sni.cloudflaressl.com as the Common Name if set true.
     */
    cloudflare_branding?: boolean;
    /**
     * Comma separated list of valid host names for the certificate packs. Must contain
     * the zone apex, may not contain more than 50 hosts, and may not be empty.
     */
    hosts?: Array<Host>;
    /**
     * Status of certificate pack.
     */
    status?: Status;
    /**
     * Type of certificate pack.
     */
    type?: 'advanced';
    /**
     * Validation Method selected for the order.
     */
    validation_method?: 'txt' | 'http' | 'email';
    /**
     * Validity Days selected for the order.
     */
    validity_days?: 14 | 30 | 90 | 365;
}
export type CertificatePackGetResponse = unknown | string | null;
export interface CertificatePackListParams {
    /**
     * Path param: Identifier
     */
    zone_id: string;
    /**
     * Query param: Include Certificate Packs of all statuses, not just active ones.
     */
    status?: 'all';
}
export interface CertificatePackDeleteParams {
    /**
     * Identifier
     */
    zone_id: string;
}
export interface CertificatePackEditParams {
    /**
     * Path param: Identifier
     */
    zone_id: string;
    /**
     * Body param:
     */
    body: unknown;
}
export interface CertificatePackGetParams {
    /**
     * Identifier
     */
    zone_id: string;
}
export declare namespace CertificatePacks {
    export import Host = CertificatePacksAPI.Host;
    export import RequestValidity = CertificatePacksAPI.RequestValidity;
    export import Status = CertificatePacksAPI.Status;
    export import ValidationMethod = CertificatePacksAPI.ValidationMethod;
    export import CertificatePackListResponse = CertificatePacksAPI.CertificatePackListResponse;
    export import CertificatePackDeleteResponse = CertificatePacksAPI.CertificatePackDeleteResponse;
    export import CertificatePackEditResponse = CertificatePacksAPI.CertificatePackEditResponse;
    export import CertificatePackGetResponse = CertificatePacksAPI.CertificatePackGetResponse;
    export import CertificatePackListResponsesSinglePage = CertificatePacksAPI.CertificatePackListResponsesSinglePage;
    export import CertificatePackListParams = CertificatePacksAPI.CertificatePackListParams;
    export import CertificatePackDeleteParams = CertificatePacksAPI.CertificatePackDeleteParams;
    export import CertificatePackEditParams = CertificatePacksAPI.CertificatePackEditParams;
    export import CertificatePackGetParams = CertificatePacksAPI.CertificatePackGetParams;
    export import Order = OrderAPI.Order;
    export import OrderCreateResponse = OrderAPI.OrderCreateResponse;
    export import OrderCreateParams = OrderAPI.OrderCreateParams;
    export import Quota = QuotaAPI.Quota;
    export import QuotaGetResponse = QuotaAPI.QuotaGetResponse;
    export import QuotaGetParams = QuotaAPI.QuotaGetParams;
}
//# sourceMappingURL=certificate-packs.d.ts.map