import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as OriginTLSClientAuthAPI from 'cloudflare/resources/origin-tls-client-auth/origin-tls-client-auth';
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<OriginTLSClientAuthListResponsesSinglePage, OriginTLSClientAuthListResponse>;
    /**
     * 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 OriginTLSClientAuthListResponsesSinglePage extends SinglePage<OriginTLSClientAuthListResponse> {
}
export interface OriginTLSClientCertificateZoneAuthenticatedOriginPull {
    /**
     * Identifier
     */
    id?: string;
    /**
     * The zone's leaf certificate.
     */
    certificate?: string;
    /**
     * Indicates whether zone-level authenticated origin pulls is enabled.
     */
    enabled?: boolean;
    /**
     * The zone's private key.
     */
    private_key?: string;
}
export type OriginTLSClientAuthCreateResponse = unknown | string;
export interface OriginTLSClientAuthListResponse {
    /**
     * Identifier
     */
    id?: string;
    /**
     * The zone's leaf certificate.
     */
    certificate?: string;
    /**
     * Indicates whether zone-level authenticated origin pulls is enabled.
     */
    enabled?: boolean;
    /**
     * The zone's private key.
     */
    private_key?: string;
}
export type OriginTLSClientAuthDeleteResponse = unknown | string;
export type OriginTLSClientAuthGetResponse = unknown | string;
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 {
    /**
     * Identifier
     */
    zone_id: string;
}
export interface OriginTLSClientAuthGetParams {
    /**
     * Identifier
     */
    zone_id: string;
}
export declare namespace OriginTLSClientAuth {
    export import OriginTLSClientCertificateZoneAuthenticatedOriginPull = OriginTLSClientAuthAPI.OriginTLSClientCertificateZoneAuthenticatedOriginPull;
    export import OriginTLSClientAuthCreateResponse = OriginTLSClientAuthAPI.OriginTLSClientAuthCreateResponse;
    export import OriginTLSClientAuthListResponse = OriginTLSClientAuthAPI.OriginTLSClientAuthListResponse;
    export import OriginTLSClientAuthDeleteResponse = OriginTLSClientAuthAPI.OriginTLSClientAuthDeleteResponse;
    export import OriginTLSClientAuthGetResponse = OriginTLSClientAuthAPI.OriginTLSClientAuthGetResponse;
    export import OriginTLSClientAuthListResponsesSinglePage = OriginTLSClientAuthAPI.OriginTLSClientAuthListResponsesSinglePage;
    export import OriginTLSClientAuthCreateParams = OriginTLSClientAuthAPI.OriginTLSClientAuthCreateParams;
    export import OriginTLSClientAuthListParams = OriginTLSClientAuthAPI.OriginTLSClientAuthListParams;
    export import OriginTLSClientAuthDeleteParams = OriginTLSClientAuthAPI.OriginTLSClientAuthDeleteParams;
    export import OriginTLSClientAuthGetParams = OriginTLSClientAuthAPI.OriginTLSClientAuthGetParams;
    export import Hostnames = HostnamesAPI.Hostnames;
    export import OriginTLSClientCertificateAuthenticatedOriginPull = HostnamesAPI.OriginTLSClientCertificateAuthenticatedOriginPull;
    export import OriginTLSClientCertificateID = HostnamesAPI.OriginTLSClientCertificateID;
    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