import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as SettingsAPI from 'cloudflare/resources/origin-tls-client-auth/settings';
import * as HostnamesAPI from 'cloudflare/resources/origin-tls-client-auth/hostnames/hostnames';
import { SinglePage } from 'cloudflare/pagination';
export declare class OriginTLSClientAuth extends APIResource {
    hostnames: HostnamesAPI.Hostnames;
    settings: SettingsAPI.Settings;
    /**
     * Upload your own certificate you want Cloudflare to use for edge-to-origin
     * communication to override the shared certificate. Please note that it is
     * important to keep only one certificate active. Also, make sure to enable
     * zone-level authenticated origin pulls by making a PUT call to settings endpoint
     * to see the uploaded certificate in use.
     */
    create(params: OriginTLSClientAuthCreateParams, options?: Core.RequestOptions): Core.APIPromise<OriginTLSClientAuthCreateResponse>;
    /**
     * List Certificates
     */
    list(params: OriginTLSClientAuthListParams, options?: Core.RequestOptions): Core.PagePromise<ZoneAuthenticatedOriginPullsSinglePage, ZoneAuthenticatedOriginPull>;
    /**
     * Delete Certificate
     */
    delete(certificateId: string, params: OriginTLSClientAuthDeleteParams, options?: Core.RequestOptions): Core.APIPromise<OriginTLSClientAuthDeleteResponse>;
    /**
     * Get Certificate Details
     */
    get(certificateId: string, params: OriginTLSClientAuthGetParams, options?: Core.RequestOptions): Core.APIPromise<OriginTLSClientAuthGetResponse>;
}
export declare class ZoneAuthenticatedOriginPullsSinglePage extends SinglePage<ZoneAuthenticatedOriginPull> {
}
export interface ZoneAuthenticatedOriginPull {
    /**
     * Identifier
     */
    id?: string;
    /**
     * The zone's leaf certificate.
     */
    certificate?: string;
    /**
     * When the certificate from the authority expires.
     */
    expires_on?: string;
    /**
     * The certificate authority that issued the certificate.
     */
    issuer?: string;
    /**
     * The type of hash used for the certificate.
     */
    signature?: string;
    /**
     * Status of the certificate activation.
     */
    status?: 'initializing' | 'pending_deployment' | 'pending_deletion' | 'active' | 'deleted' | 'deployment_timed_out' | 'deletion_timed_out';
    /**
     * This is the time the certificate was uploaded.
     */
    uploaded_on?: string;
}
export type OriginTLSClientAuthCreateResponse = unknown | string | null;
export type OriginTLSClientAuthDeleteResponse = unknown | string | null;
export type OriginTLSClientAuthGetResponse = unknown | string | null;
export interface OriginTLSClientAuthCreateParams {
    /**
     * Path param: Identifier
     */
    zone_id: string;
    /**
     * Body param: The zone's leaf certificate.
     */
    certificate: string;
    /**
     * Body param: The zone's private key.
     */
    private_key: string;
}
export interface OriginTLSClientAuthListParams {
    /**
     * Identifier
     */
    zone_id: string;
}
export interface OriginTLSClientAuthDeleteParams {
    /**
     * Path param: Identifier
     */
    zone_id: string;
    /**
     * Body param:
     */
    body: unknown;
}
export interface OriginTLSClientAuthGetParams {
    /**
     * Identifier
     */
    zone_id: string;
}
export declare namespace OriginTLSClientAuth {
    export import Hostnames = HostnamesAPI.Hostnames;
    export import AuthenticatedOriginPull = HostnamesAPI.AuthenticatedOriginPull;
    export import HostnameUpdateResponse = HostnamesAPI.HostnameUpdateResponse;
    export import HostnameUpdateParams = HostnamesAPI.HostnameUpdateParams;
    export import HostnameGetParams = HostnamesAPI.HostnameGetParams;
    export import Settings = SettingsAPI.Settings;
    export import SettingUpdateResponse = SettingsAPI.SettingUpdateResponse;
    export import SettingGetResponse = SettingsAPI.SettingGetResponse;
    export import SettingUpdateParams = SettingsAPI.SettingUpdateParams;
    export import SettingGetParams = SettingsAPI.SettingGetParams;
}
//# sourceMappingURL=origin-tls-client-auth.d.ts.map