import * as Core from 'cloudflaredev/core';
import { APIResource } from 'cloudflaredev/resource';
import * as SettingsAPI from 'cloudflaredev/resources/zero-trust/access/certificates/settings';
export declare class Settings extends APIResource {
    /**
     * Updates an mTLS certificate's hostname settings.
     */
    update(params: SettingUpdateParams, options?: Core.RequestOptions): Core.APIPromise<SettingUpdateResponse | null>;
    /**
     * List all mTLS hostname settings for this account or zone.
     */
    get(params?: SettingGetParams, options?: Core.RequestOptions): Core.APIPromise<SettingGetResponse | null>;
    get(options?: Core.RequestOptions): Core.APIPromise<SettingGetResponse | null>;
}
export interface CertificateSettings {
    /**
     * Request client certificates for this hostname in China. Can only be set to true
     * if this zone is china network enabled.
     */
    china_network: boolean;
    /**
     * Client Certificate Forwarding is a feature that takes the client cert provided
     * by the eyeball to the edge, and forwards it to the origin as a HTTP header to
     * allow logging on the origin.
     */
    client_certificate_forwarding: boolean;
    /**
     * The hostname that these settings apply to.
     */
    hostname: string;
}
export interface CertificateSettingsParam {
    /**
     * Request client certificates for this hostname in China. Can only be set to true
     * if this zone is china network enabled.
     */
    china_network: boolean;
    /**
     * Client Certificate Forwarding is a feature that takes the client cert provided
     * by the eyeball to the edge, and forwards it to the origin as a HTTP header to
     * allow logging on the origin.
     */
    client_certificate_forwarding: boolean;
    /**
     * The hostname that these settings apply to.
     */
    hostname: string;
}
export type SettingUpdateResponse = Array<CertificateSettings>;
export type SettingGetResponse = Array<CertificateSettings>;
export interface SettingUpdateParams {
    /**
     * Body param:
     */
    settings: Array<CertificateSettingsParam>;
    /**
     * Path param: The Account ID to use for this endpoint. Mutually exclusive with the
     * Zone ID.
     */
    account_id?: string;
    /**
     * Path param: The Zone ID to use for this endpoint. Mutually exclusive with the
     * Account ID.
     */
    zone_id?: string;
}
export interface SettingGetParams {
    /**
     * The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.
     */
    account_id?: string;
    /**
     * The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.
     */
    zone_id?: string;
}
export declare namespace Settings {
    export import CertificateSettings = SettingsAPI.CertificateSettings;
    export import SettingUpdateResponse = SettingsAPI.SettingUpdateResponse;
    export import SettingGetResponse = SettingsAPI.SettingGetResponse;
    export import SettingUpdateParams = SettingsAPI.SettingUpdateParams;
    export import SettingGetParams = SettingsAPI.SettingGetParams;
}
//# sourceMappingURL=settings.d.ts.map