/**
 * Cloudflare ZONES API
 *
 * Generated from Cloudflare TypeScript SDK.
 * DO NOT EDIT - regenerate with: bun scripts/generate.ts --service zones
 */
import * as Schema from "effect/Schema";
import type * as HttpClient from "effect/unstable/http/HttpClient";
import * as API from "../client/api.ts";
import type { Credentials } from "../credentials.ts";
import { type DefaultErrors } from "../errors.ts";
export interface TriggerActivationCheckRequest {
    /** Identifier. */
    zoneId: string;
}
export declare const TriggerActivationCheckRequest: Schema.Schema<TriggerActivationCheckRequest>;
export interface TriggerActivationCheckResponse {
    /** Identifier. */
    id?: string | null;
}
export declare const TriggerActivationCheckResponse: Schema.Schema<TriggerActivationCheckResponse>;
export type TriggerActivationCheckError = DefaultErrors;
export declare const triggerActivationCheck: API.OperationMethod<TriggerActivationCheckRequest, TriggerActivationCheckResponse, TriggerActivationCheckError, Credentials | HttpClient.HttpClient>;
export interface GetCustomNameserverRequest {
    /** Identifier. */
    zoneId: string;
}
export declare const GetCustomNameserverRequest: Schema.Schema<GetCustomNameserverRequest>;
export interface GetCustomNameserverResponse {
    errors: {
        code: number;
        message: string;
        documentationUrl?: string | null;
        source?: {
            pointer?: string | null;
        } | null;
    }[];
    messages: {
        code: number;
        message: string;
        documentationUrl?: string | null;
        source?: {
            pointer?: string | null;
        } | null;
    }[];
    /** Whether the API call was successful. */
    success: true;
    /** Whether zone uses account-level custom nameservers. */
    enabled?: boolean | null;
    /** The number of the name server set to assign to the zone. */
    nsSet?: number | null;
    resultInfo?: {
        count?: number | null;
        page?: number | null;
        perPage?: number | null;
        totalCount?: number | null;
    } | null;
}
export declare const GetCustomNameserverResponse: Schema.Schema<GetCustomNameserverResponse>;
export type GetCustomNameserverError = DefaultErrors;
export declare const getCustomNameserver: API.OperationMethod<GetCustomNameserverRequest, GetCustomNameserverResponse, GetCustomNameserverError, Credentials | HttpClient.HttpClient>;
export interface PutCustomNameserverRequest {
    /** Path param: Identifier. */
    zoneId: string;
    /** Body param: Whether zone uses account-level custom nameservers. */
    enabled?: boolean;
    /** Body param: The number of the name server set to assign to the zone. */
    nsSet?: number;
}
export declare const PutCustomNameserverRequest: Schema.Schema<PutCustomNameserverRequest>;
export interface PutCustomNameserverResponse {
    result: string[];
}
export declare const PutCustomNameserverResponse: Schema.Schema<PutCustomNameserverResponse>;
export type PutCustomNameserverError = DefaultErrors;
export declare const putCustomNameserver: API.PaginatedOperationMethod<PutCustomNameserverRequest, PutCustomNameserverResponse, PutCustomNameserverError, Credentials | HttpClient.HttpClient>;
export interface GetHoldRequest {
    /** Identifier. */
    zoneId: string;
}
export declare const GetHoldRequest: Schema.Schema<GetHoldRequest>;
export interface GetHoldResponse {
    hold?: boolean | null;
    holdAfter?: string | null;
    includeSubdomains?: string | null;
}
export declare const GetHoldResponse: Schema.Schema<GetHoldResponse>;
export type GetHoldError = DefaultErrors;
export declare const getHold: API.OperationMethod<GetHoldRequest, GetHoldResponse, GetHoldError, Credentials | HttpClient.HttpClient>;
export interface CreateHoldRequest {
    /** Path param: Identifier. */
    zoneId: string;
    /** Query param: If provided, the zone hold will extend to block any subdomain of the given zone, as well as SSL4SaaS Custom Hostnames. For example, a zone hold on a zone with the hostname 'example.com' a */
    includeSubdomains?: boolean;
}
export declare const CreateHoldRequest: Schema.Schema<CreateHoldRequest>;
export interface CreateHoldResponse {
    hold?: boolean | null;
    holdAfter?: string | null;
    includeSubdomains?: string | null;
}
export declare const CreateHoldResponse: Schema.Schema<CreateHoldResponse>;
export type CreateHoldError = DefaultErrors;
export declare const createHold: API.OperationMethod<CreateHoldRequest, CreateHoldResponse, CreateHoldError, Credentials | HttpClient.HttpClient>;
export interface PatchHoldRequest {
    /** Path param: Identifier. */
    zoneId: string;
    /** Body param: If `hold_after` is provided and future-dated, the hold will be temporarily disabled, then automatically re-enabled by the system at the time specified in this RFC3339-formatted timestamp.  */
    holdAfter?: string;
    /** Body param: If `true`, the zone hold will extend to block any subdomain of the given zone, as well as SSL4SaaS Custom Hostnames. For example, a zone hold on a zone with the hostname 'example.com' and  */
    includeSubdomains?: boolean;
}
export declare const PatchHoldRequest: Schema.Schema<PatchHoldRequest>;
export interface PatchHoldResponse {
    hold?: boolean | null;
    holdAfter?: string | null;
    includeSubdomains?: string | null;
}
export declare const PatchHoldResponse: Schema.Schema<PatchHoldResponse>;
export type PatchHoldError = DefaultErrors;
export declare const patchHold: API.OperationMethod<PatchHoldRequest, PatchHoldResponse, PatchHoldError, Credentials | HttpClient.HttpClient>;
export interface DeleteHoldRequest {
    /** Path param: Identifier. */
    zoneId: string;
    /** Query param: If `hold_after` is provided, the hold will be temporarily disabled, then automatically re-enabled by the system at the time specified in this RFC3339-formatted timestamp. Otherwise, the h */
    holdAfter?: string;
}
export declare const DeleteHoldRequest: Schema.Schema<DeleteHoldRequest>;
export interface DeleteHoldResponse {
    hold?: boolean | null;
    holdAfter?: string | null;
    includeSubdomains?: string | null;
}
export declare const DeleteHoldResponse: Schema.Schema<DeleteHoldResponse>;
export type DeleteHoldError = DefaultErrors;
export declare const deleteHold: API.OperationMethod<DeleteHoldRequest, DeleteHoldResponse, DeleteHoldError, Credentials | HttpClient.HttpClient>;
export interface GetPlanRequest {
    planIdentifier: string;
    /** Identifier */
    zoneId: string;
}
export declare const GetPlanRequest: Schema.Schema<GetPlanRequest>;
export interface GetPlanResponse {
    /** Identifier */
    id?: string | null;
    /** Indicates whether you can subscribe to this plan. */
    canSubscribe?: boolean | null;
    /** The monetary unit in which pricing information is displayed. */
    currency?: string | null;
    /** Indicates whether this plan is managed externally. */
    externallyManaged?: boolean | null;
    /** The frequency at which you will be billed for this plan. */
    frequency?: "weekly" | "monthly" | "quarterly" | "yearly" | null;
    /** Indicates whether you are currently subscribed to this plan. */
    isSubscribed?: boolean | null;
    /** Indicates whether this plan has a legacy discount applied. */
    legacyDiscount?: boolean | null;
    /** The legacy identifier for this rate plan, if any. */
    legacyId?: string | null;
    /** The plan name. */
    name?: string | null;
    /** The amount you will be billed for this plan. */
    price?: number | null;
}
export declare const GetPlanResponse: Schema.Schema<GetPlanResponse>;
export type GetPlanError = DefaultErrors;
export declare const getPlan: API.OperationMethod<GetPlanRequest, GetPlanResponse, GetPlanError, Credentials | HttpClient.HttpClient>;
export interface ListPlansRequest {
    /** Identifier */
    zoneId: string;
}
export declare const ListPlansRequest: Schema.Schema<ListPlansRequest>;
export interface ListPlansResponse {
    result: {
        id?: string | null;
        canSubscribe?: boolean | null;
        currency?: string | null;
        externallyManaged?: boolean | null;
        frequency?: "weekly" | "monthly" | "quarterly" | "yearly" | null;
        isSubscribed?: boolean | null;
        legacyDiscount?: boolean | null;
        legacyId?: string | null;
        name?: string | null;
        price?: number | null;
    }[];
}
export declare const ListPlansResponse: Schema.Schema<ListPlansResponse>;
export type ListPlansError = DefaultErrors;
export declare const listPlans: API.PaginatedOperationMethod<ListPlansRequest, ListPlansResponse, ListPlansError, Credentials | HttpClient.HttpClient>;
export interface GetRatePlanRequest {
    /** Identifier */
    zoneId: string;
}
export declare const GetRatePlanRequest: Schema.Schema<GetRatePlanRequest>;
export interface GetRatePlanResponse {
    result: {
        id?: string | null;
        components?: {
            default?: number | null;
            name?: "zones" | "page_rules" | "dedicated_certificates" | "dedicated_certificates_custom" | null;
            unitPrice?: number | null;
        }[] | null;
        currency?: string | null;
        duration?: number | null;
        frequency?: "weekly" | "monthly" | "quarterly" | "yearly" | null;
        name?: string | null;
    }[];
}
export declare const GetRatePlanResponse: Schema.Schema<GetRatePlanResponse>;
export type GetRatePlanError = DefaultErrors;
export declare const getRatePlan: API.PaginatedOperationMethod<GetRatePlanRequest, GetRatePlanResponse, GetRatePlanError, Credentials | HttpClient.HttpClient>;
export interface GetSettingRequest {
    settingId: string;
    /** Identifier */
    zoneId: string;
}
export declare const GetSettingRequest: Schema.Schema<GetSettingRequest>;
export type GetSettingResponse = {
    id: "0rtt";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "advanced_ddos";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "aegis";
    modifiedOn?: string | null;
    value?: {
        enabled?: boolean | null;
        poolId?: string | null;
    } | null;
} | {
    id: "always_online";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "always_use_https";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "automatic_https_rewrites";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "brotli";
    value: "off" | "on";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "browser_cache_ttl";
    value: number;
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "browser_check";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "cache_level";
    value: "aggressive" | "basic" | "simplified";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "challenge_ttl";
    value: "300" | "900" | "1800" | "2700" | "3600" | "7200" | "10800" | "14400" | "28800" | "57600" | "86400" | "604800" | "2592000" | "31536000";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "china_network_enabled";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "ciphers";
    value: string[];
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "cname_flattening";
    value: "flatten_at_root" | "flatten_all";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "development_mode";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
    timeRemaining?: number | null;
} | {
    id: "early_hints";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "edge_cache_ttl";
    value: "30" | "60" | "300" | "1200" | "1800" | "3600" | "7200" | "10800" | "14400" | "18000" | "28800" | "43200" | "57600" | "72000" | "86400" | "172800" | "259200" | "345600" | "432000" | "518400" | "604800";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "email_obfuscation";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "h2_prioritization";
    value: "on" | "off" | "custom";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "hotlink_protection";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "http2";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "http3";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "image_resizing";
    value: "on" | "off" | "open";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "ip_geolocation";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "ipv6";
    value: "off" | "on";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "max_upload";
    value: "100" | "125" | "150" | "175" | "200" | "225" | "250" | "275" | "300" | "325" | "350" | "375" | "400" | "425" | "450" | "475" | "500" | "1000";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "min_tls_version";
    value: "1.0" | "1.1" | "1.2" | "1.3";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "mirage";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "nel";
    value: {
        enabled?: boolean | null;
    };
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "opportunistic_encryption";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "opportunistic_onion";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "orange_to_orange";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "origin_error_page_pass_thru";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "origin_h2_max_streams";
    modifiedOn?: string | null;
    value?: number | null;
} | {
    id: "origin_max_http_version";
    modifiedOn?: string | null;
    value?: "2" | "1" | null;
} | {
    id: "polish";
    value: "off" | "lossless" | "lossy";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "prefetch_preload";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "privacy_pass";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "proxy_read_timeout";
    value: number;
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "pseudo_ipv4";
    value: "off" | "add_header" | "overwrite_header";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "replace_insecure_js";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "response_buffering";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "rocket_loader";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "automatic_platform_optimization";
    value: {
        cacheByDeviceType: boolean;
        cf: boolean;
        enabled: boolean;
        hostnames: string[];
        wordpress: boolean;
        wpPlugin: boolean;
    };
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "security_header";
    value: {
        strictTransportSecurity?: {
            enabled?: boolean | null;
            includeSubdomains?: boolean | null;
            maxAge?: number | null;
            nosniff?: boolean | null;
            preload?: boolean | null;
        } | null;
    };
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "security_level";
    value: "off" | "essentially_off" | "low" | "medium" | "high" | "under_attack";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "server_side_exclude";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "sha1_support";
    value: "off" | "on";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "sort_query_string_for_cache";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "ssl";
    value: "off" | "flexible" | "full" | "strict";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id?: "ssl_recommender" | null;
    enabled?: boolean | null;
} | {
    id: "tls_1_2_only";
    value: "off" | "on";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "tls_1_3";
    value: "on" | "off" | "zrt";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "tls_client_auth";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "transformations";
    value: "on" | "off" | "open";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "transformations_allowed_origins";
    value: string;
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "true_client_ip_header";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "waf";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "webp";
    value: "off" | "on";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "websockets";
    value: "off" | "on";
    editable?: true | false | null;
    modifiedOn?: string | null;
};
export declare const GetSettingResponse: Schema.Schema<GetSettingResponse>;
export type GetSettingError = DefaultErrors;
export declare const getSetting: API.OperationMethod<GetSettingRequest, GetSettingResponse, GetSettingError, Credentials | HttpClient.HttpClient>;
export interface PatchSettingRequest {
    settingId: string;
    /** Path param: Identifier */
    zoneId: string;
    /** Body param: ssl-recommender enrollment setting. */
    enabled?: boolean;
}
export declare const PatchSettingRequest: Schema.Schema<PatchSettingRequest>;
export type PatchSettingResponse = {
    id: "0rtt";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "advanced_ddos";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "aegis";
    modifiedOn?: string | null;
    value?: {
        enabled?: boolean | null;
        poolId?: string | null;
    } | null;
} | {
    id: "always_online";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "always_use_https";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "automatic_https_rewrites";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "brotli";
    value: "off" | "on";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "browser_cache_ttl";
    value: number;
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "browser_check";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "cache_level";
    value: "aggressive" | "basic" | "simplified";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "challenge_ttl";
    value: "300" | "900" | "1800" | "2700" | "3600" | "7200" | "10800" | "14400" | "28800" | "57600" | "86400" | "604800" | "2592000" | "31536000";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "china_network_enabled";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "ciphers";
    value: string[];
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "cname_flattening";
    value: "flatten_at_root" | "flatten_all";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "development_mode";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
    timeRemaining?: number | null;
} | {
    id: "early_hints";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "edge_cache_ttl";
    value: "30" | "60" | "300" | "1200" | "1800" | "3600" | "7200" | "10800" | "14400" | "18000" | "28800" | "43200" | "57600" | "72000" | "86400" | "172800" | "259200" | "345600" | "432000" | "518400" | "604800";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "email_obfuscation";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "h2_prioritization";
    value: "on" | "off" | "custom";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "hotlink_protection";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "http2";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "http3";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "image_resizing";
    value: "on" | "off" | "open";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "ip_geolocation";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "ipv6";
    value: "off" | "on";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "max_upload";
    value: "100" | "125" | "150" | "175" | "200" | "225" | "250" | "275" | "300" | "325" | "350" | "375" | "400" | "425" | "450" | "475" | "500" | "1000";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "min_tls_version";
    value: "1.0" | "1.1" | "1.2" | "1.3";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "mirage";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "nel";
    value: {
        enabled?: boolean | null;
    };
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "opportunistic_encryption";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "opportunistic_onion";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "orange_to_orange";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "origin_error_page_pass_thru";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "origin_h2_max_streams";
    modifiedOn?: string | null;
    value?: number | null;
} | {
    id: "origin_max_http_version";
    modifiedOn?: string | null;
    value?: "2" | "1" | null;
} | {
    id: "polish";
    value: "off" | "lossless" | "lossy";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "prefetch_preload";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "privacy_pass";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "proxy_read_timeout";
    value: number;
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "pseudo_ipv4";
    value: "off" | "add_header" | "overwrite_header";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "replace_insecure_js";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "response_buffering";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "rocket_loader";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "automatic_platform_optimization";
    value: {
        cacheByDeviceType: boolean;
        cf: boolean;
        enabled: boolean;
        hostnames: string[];
        wordpress: boolean;
        wpPlugin: boolean;
    };
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "security_header";
    value: {
        strictTransportSecurity?: {
            enabled?: boolean | null;
            includeSubdomains?: boolean | null;
            maxAge?: number | null;
            nosniff?: boolean | null;
            preload?: boolean | null;
        } | null;
    };
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "security_level";
    value: "off" | "essentially_off" | "low" | "medium" | "high" | "under_attack";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "server_side_exclude";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "sha1_support";
    value: "off" | "on";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "sort_query_string_for_cache";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "ssl";
    value: "off" | "flexible" | "full" | "strict";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id?: "ssl_recommender" | null;
    enabled?: boolean | null;
} | {
    id: "tls_1_2_only";
    value: "off" | "on";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "tls_1_3";
    value: "on" | "off" | "zrt";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "tls_client_auth";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "transformations";
    value: "on" | "off" | "open";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "transformations_allowed_origins";
    value: string;
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "true_client_ip_header";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "waf";
    value: "on" | "off";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "webp";
    value: "off" | "on";
    editable?: true | false | null;
    modifiedOn?: string | null;
} | {
    id: "websockets";
    value: "off" | "on";
    editable?: true | false | null;
    modifiedOn?: string | null;
};
export declare const PatchSettingResponse: Schema.Schema<PatchSettingResponse>;
export type PatchSettingError = DefaultErrors;
export declare const patchSetting: API.OperationMethod<PatchSettingRequest, PatchSettingResponse, PatchSettingError, Credentials | HttpClient.HttpClient>;
export interface GetSubscriptionRequest {
    /** Identifier */
    zoneId: string;
}
export declare const GetSubscriptionRequest: Schema.Schema<GetSubscriptionRequest>;
export interface GetSubscriptionResponse {
    /** Subscription identifier tag. */
    id?: string | null;
    /** The monetary unit in which pricing information is displayed. */
    currency?: string | null;
    /** The end of the current period and also when the next billing is due. */
    currentPeriodEnd?: string | null;
    /** When the current billing period started. May match initial_period_start if this is the first period. */
    currentPeriodStart?: string | null;
    /** How often the subscription is renewed automatically. */
    frequency?: "weekly" | "monthly" | "quarterly" | "yearly" | "not-applicable" | null;
    /** The price of the subscription that will be billed, in US dollars. */
    price?: number | null;
    /** The rate plan applied to the subscription. */
    ratePlan?: {
        id?: "free" | "lite" | "pro" | "pro_plus" | "business" | "enterprise" | "partners_free" | "partners_pro" | "partners_business" | "partners_enterprise" | null;
        currency?: string | null;
        externallyManaged?: boolean | null;
        isContract?: boolean | null;
        publicName?: string | null;
        scope?: string | null;
        sets?: string[] | null;
    } | null;
    /** The state that the subscription is in. */
    state?: "Trial" | "Provisioned" | "Paid" | "AwaitingPayment" | "Cancelled" | "Failed" | "Expired" | null;
}
export declare const GetSubscriptionResponse: Schema.Schema<GetSubscriptionResponse>;
export type GetSubscriptionError = DefaultErrors;
export declare const getSubscription: API.OperationMethod<GetSubscriptionRequest, GetSubscriptionResponse, GetSubscriptionError, Credentials | HttpClient.HttpClient>;
export interface CreateSubscriptionRequest {
    /** Path param: Identifier */
    zoneId: string;
    /** Body param: How often the subscription is renewed automatically. */
    frequency?: "weekly" | "monthly" | "quarterly" | "yearly";
    /** Body param: The rate plan applied to the subscription. */
    ratePlan?: {
        id?: "free" | "lite" | "pro" | "pro_plus" | "business" | "enterprise" | "partners_free" | "partners_pro" | "partners_business" | "partners_enterprise";
        currency?: string;
        externallyManaged?: boolean;
        isContract?: boolean;
        publicName?: string;
        scope?: string;
        sets?: string[];
    };
}
export declare const CreateSubscriptionRequest: Schema.Schema<CreateSubscriptionRequest>;
export interface CreateSubscriptionResponse {
    /** Subscription identifier tag. */
    id?: string | null;
    /** The monetary unit in which pricing information is displayed. */
    currency?: string | null;
    /** The end of the current period and also when the next billing is due. */
    currentPeriodEnd?: string | null;
    /** When the current billing period started. May match initial_period_start if this is the first period. */
    currentPeriodStart?: string | null;
    /** How often the subscription is renewed automatically. */
    frequency?: "weekly" | "monthly" | "quarterly" | "yearly" | "not-applicable" | null;
    /** The price of the subscription that will be billed, in US dollars. */
    price?: number | null;
    /** The rate plan applied to the subscription. */
    ratePlan?: {
        id?: "free" | "lite" | "pro" | "pro_plus" | "business" | "enterprise" | "partners_free" | "partners_pro" | "partners_business" | "partners_enterprise" | null;
        currency?: string | null;
        externallyManaged?: boolean | null;
        isContract?: boolean | null;
        publicName?: string | null;
        scope?: string | null;
        sets?: string[] | null;
    } | null;
    /** The state that the subscription is in. */
    state?: "Trial" | "Provisioned" | "Paid" | "AwaitingPayment" | "Cancelled" | "Failed" | "Expired" | null;
}
export declare const CreateSubscriptionResponse: Schema.Schema<CreateSubscriptionResponse>;
export type CreateSubscriptionError = DefaultErrors;
export declare const createSubscription: API.OperationMethod<CreateSubscriptionRequest, CreateSubscriptionResponse, CreateSubscriptionError, Credentials | HttpClient.HttpClient>;
export interface UpdateSubscriptionRequest {
    /** Path param: Identifier */
    zoneId: string;
    /** Body param: How often the subscription is renewed automatically. */
    frequency?: "weekly" | "monthly" | "quarterly" | "yearly";
    /** Body param: The rate plan applied to the subscription. */
    ratePlan?: {
        id?: "free" | "lite" | "pro" | "pro_plus" | "business" | "enterprise" | "partners_free" | "partners_pro" | "partners_business" | "partners_enterprise";
        currency?: string;
        externallyManaged?: boolean;
        isContract?: boolean;
        publicName?: string;
        scope?: string;
        sets?: string[];
    };
}
export declare const UpdateSubscriptionRequest: Schema.Schema<UpdateSubscriptionRequest>;
export interface UpdateSubscriptionResponse {
    /** Subscription identifier tag. */
    id?: string | null;
    /** The monetary unit in which pricing information is displayed. */
    currency?: string | null;
    /** The end of the current period and also when the next billing is due. */
    currentPeriodEnd?: string | null;
    /** When the current billing period started. May match initial_period_start if this is the first period. */
    currentPeriodStart?: string | null;
    /** How often the subscription is renewed automatically. */
    frequency?: "weekly" | "monthly" | "quarterly" | "yearly" | "not-applicable" | null;
    /** The price of the subscription that will be billed, in US dollars. */
    price?: number | null;
    /** The rate plan applied to the subscription. */
    ratePlan?: {
        id?: "free" | "lite" | "pro" | "pro_plus" | "business" | "enterprise" | "partners_free" | "partners_pro" | "partners_business" | "partners_enterprise" | null;
        currency?: string | null;
        externallyManaged?: boolean | null;
        isContract?: boolean | null;
        publicName?: string | null;
        scope?: string | null;
        sets?: string[] | null;
    } | null;
    /** The state that the subscription is in. */
    state?: "Trial" | "Provisioned" | "Paid" | "AwaitingPayment" | "Cancelled" | "Failed" | "Expired" | null;
}
export declare const UpdateSubscriptionResponse: Schema.Schema<UpdateSubscriptionResponse>;
export type UpdateSubscriptionError = DefaultErrors;
export declare const updateSubscription: API.OperationMethod<UpdateSubscriptionRequest, UpdateSubscriptionResponse, UpdateSubscriptionError, Credentials | HttpClient.HttpClient>;
export interface GetZoneRequest {
    /** Identifier */
    zoneId: string;
}
export declare const GetZoneRequest: Schema.Schema<GetZoneRequest>;
export interface GetZoneResponse {
    /** Identifier */
    id: string;
    /** The account the zone belongs to. */
    account: {
        id?: string | null;
        name?: string | null;
    };
    /** The last time proof of ownership was detected and the zone was made active. */
    activatedOn: string | null;
    /** When the zone was created. */
    createdOn: string;
    /** The interval (in seconds) from when development mode expires (positive integer) or last expired (negative integer) for the domain. If development mode has never been enabled, this value is 0. */
    developmentMode: number;
    /** Metadata about the zone. */
    meta: {
        cdnOnly?: boolean | null;
        customCertificateQuota?: number | null;
        dnsOnly?: boolean | null;
        foundationDns?: boolean | null;
        pageRuleQuota?: number | null;
        phishingDetected?: boolean | null;
        step?: number | null;
    };
    /** When the zone was last modified. */
    modifiedOn: string;
    /** The domain name. */
    name: string;
    /** The name servers Cloudflare assigns to a zone. */
    nameServers: string[];
    /** DNS host at the time of switching to Cloudflare. */
    originalDnshost: string | null;
    /** Original name servers before moving to Cloudflare. */
    originalNameServers: string[] | null;
    /** Registrar for the domain at the time of switching to Cloudflare. */
    originalRegistrar: string | null;
    /** The owner of the zone. */
    owner: {
        id?: string | null;
        name?: string | null;
        type?: string | null;
    };
    /** @deprecated Please use the `/zones/{zone_id}/subscription` API to update a zone's plan. Changing this value will create/cancel associated subscriptions. To view available plans for this zone, see [Zon */
    plan: {
        id?: string | null;
        canSubscribe?: boolean | null;
        currency?: string | null;
        externallyManaged?: boolean | null;
        frequency?: string | null;
        isSubscribed?: boolean | null;
        legacyDiscount?: boolean | null;
        legacyId?: string | null;
        name?: string | null;
        price?: number | null;
    };
    /** Allows the customer to use a custom apex. _Tenants Only Configuration_. */
    cnameSuffix?: string | null;
    /** Indicates whether the zone is only using Cloudflare DNS services. A true value means the zone will not receive security or performance benefits. */
    paused?: boolean | null;
    /** @deprecated This has been replaced by Account memberships. */
    permissions?: string[] | null;
    /** The zone status on Cloudflare. */
    status?: "initializing" | "pending" | "active" | "moved" | null;
    /** The root organizational unit that this zone belongs to (such as a tenant or organization). */
    tenant?: {
        id?: string | null;
        name?: string | null;
    } | null;
    /** The immediate parent organizational unit that this zone belongs to (such as under a tenant or sub-organization). */
    tenantUnit?: {
        id?: string | null;
    } | null;
    /** A full zone implies that DNS is hosted with Cloudflare. A partial zone is typically a partner-hosted zone or a CNAME setup. */
    type?: "full" | "partial" | "secondary" | "internal" | null;
    /** An array of domains used for custom name servers. This is only available for Business and Enterprise plans. */
    vanityNameServers?: string[] | null;
    /** Verification key for partial zone setup. */
    verificationKey?: string | null;
}
export declare const GetZoneResponse: Schema.Schema<GetZoneResponse>;
export type GetZoneError = DefaultErrors;
export declare const getZone: API.OperationMethod<GetZoneRequest, GetZoneResponse, GetZoneError, Credentials | HttpClient.HttpClient>;
export interface ListZonesRequest {
}
export declare const ListZonesRequest: Schema.Schema<ListZonesRequest>;
export interface ListZonesResponse {
    result: {
        id: string;
        account: {
            id?: string | null;
            name?: string | null;
        };
        activatedOn: string | null;
        createdOn: string;
        developmentMode: number;
        meta: {
            cdnOnly?: boolean | null;
            customCertificateQuota?: number | null;
            dnsOnly?: boolean | null;
            foundationDns?: boolean | null;
            pageRuleQuota?: number | null;
            phishingDetected?: boolean | null;
            step?: number | null;
        };
        modifiedOn: string;
        name: string;
        nameServers: string[];
        originalDnshost: string | null;
        originalNameServers: string[] | null;
        originalRegistrar: string | null;
        owner: {
            id?: string | null;
            name?: string | null;
            type?: string | null;
        };
        plan: {
            id?: string | null;
            canSubscribe?: boolean | null;
            currency?: string | null;
            externallyManaged?: boolean | null;
            frequency?: string | null;
            isSubscribed?: boolean | null;
            legacyDiscount?: boolean | null;
            legacyId?: string | null;
            name?: string | null;
            price?: number | null;
        };
        cnameSuffix?: string | null;
        paused?: boolean | null;
        permissions?: string[] | null;
        status?: "initializing" | "pending" | "active" | "moved" | null;
        tenant?: {
            id?: string | null;
            name?: string | null;
        } | null;
        tenantUnit?: {
            id?: string | null;
        } | null;
        type?: "full" | "partial" | "secondary" | "internal" | null;
        vanityNameServers?: string[] | null;
        verificationKey?: string | null;
    }[];
    resultInfo?: {
        count?: number | null;
        page?: number | null;
        perPage?: number | null;
        totalCount?: number | null;
    } | null;
}
export declare const ListZonesResponse: Schema.Schema<ListZonesResponse>;
export type ListZonesError = DefaultErrors;
export declare const listZones: API.PaginatedOperationMethod<ListZonesRequest, ListZonesResponse, ListZonesError, Credentials | HttpClient.HttpClient>;
export interface CreateZoneRequest {
    account: {
        id?: string;
    };
    /** The domain name. */
    name: string;
    /** A full zone implies that DNS is hosted with Cloudflare. A partial zone is typically a partner-hosted zone or a CNAME setup. */
    type?: "full" | "partial" | "secondary" | "internal";
}
export declare const CreateZoneRequest: Schema.Schema<CreateZoneRequest>;
export interface CreateZoneResponse {
    /** Identifier */
    id: string;
    /** The account the zone belongs to. */
    account: {
        id?: string | null;
        name?: string | null;
    };
    /** The last time proof of ownership was detected and the zone was made active. */
    activatedOn: string | null;
    /** When the zone was created. */
    createdOn: string;
    /** The interval (in seconds) from when development mode expires (positive integer) or last expired (negative integer) for the domain. If development mode has never been enabled, this value is 0. */
    developmentMode: number;
    /** Metadata about the zone. */
    meta: {
        cdnOnly?: boolean | null;
        customCertificateQuota?: number | null;
        dnsOnly?: boolean | null;
        foundationDns?: boolean | null;
        pageRuleQuota?: number | null;
        phishingDetected?: boolean | null;
        step?: number | null;
    };
    /** When the zone was last modified. */
    modifiedOn: string;
    /** The domain name. */
    name: string;
    /** The name servers Cloudflare assigns to a zone. */
    nameServers: string[];
    /** DNS host at the time of switching to Cloudflare. */
    originalDnshost: string | null;
    /** Original name servers before moving to Cloudflare. */
    originalNameServers: string[] | null;
    /** Registrar for the domain at the time of switching to Cloudflare. */
    originalRegistrar: string | null;
    /** The owner of the zone. */
    owner: {
        id?: string | null;
        name?: string | null;
        type?: string | null;
    };
    /** @deprecated Please use the `/zones/{zone_id}/subscription` API to update a zone's plan. Changing this value will create/cancel associated subscriptions. To view available plans for this zone, see [Zon */
    plan: {
        id?: string | null;
        canSubscribe?: boolean | null;
        currency?: string | null;
        externallyManaged?: boolean | null;
        frequency?: string | null;
        isSubscribed?: boolean | null;
        legacyDiscount?: boolean | null;
        legacyId?: string | null;
        name?: string | null;
        price?: number | null;
    };
    /** Allows the customer to use a custom apex. _Tenants Only Configuration_. */
    cnameSuffix?: string | null;
    /** Indicates whether the zone is only using Cloudflare DNS services. A true value means the zone will not receive security or performance benefits. */
    paused?: boolean | null;
    /** @deprecated This has been replaced by Account memberships. */
    permissions?: string[] | null;
    /** The zone status on Cloudflare. */
    status?: "initializing" | "pending" | "active" | "moved" | null;
    /** The root organizational unit that this zone belongs to (such as a tenant or organization). */
    tenant?: {
        id?: string | null;
        name?: string | null;
    } | null;
    /** The immediate parent organizational unit that this zone belongs to (such as under a tenant or sub-organization). */
    tenantUnit?: {
        id?: string | null;
    } | null;
    /** A full zone implies that DNS is hosted with Cloudflare. A partial zone is typically a partner-hosted zone or a CNAME setup. */
    type?: "full" | "partial" | "secondary" | "internal" | null;
    /** An array of domains used for custom name servers. This is only available for Business and Enterprise plans. */
    vanityNameServers?: string[] | null;
    /** Verification key for partial zone setup. */
    verificationKey?: string | null;
}
export declare const CreateZoneResponse: Schema.Schema<CreateZoneResponse>;
export type CreateZoneError = DefaultErrors;
export declare const createZone: API.OperationMethod<CreateZoneRequest, CreateZoneResponse, CreateZoneError, Credentials | HttpClient.HttpClient>;
export interface PatchZoneRequest {
    /** Path param: Identifier */
    zoneId: string;
    /** Body param: Indicates whether the zone is only using Cloudflare DNS services. A true value means the zone will not receive security or performance benefits. */
    paused?: boolean;
    /** Body param: A full zone implies that DNS is hosted with Cloudflare. A partial zone is typically a partner-hosted zone or a CNAME setup. This parameter is only available to Enterprise customers or if i */
    type?: "full" | "partial" | "secondary" | "internal";
    /** Body param: An array of domains used for custom name servers. This is only available for Business and Enterprise plans. */
    vanityNameServers?: string[];
}
export declare const PatchZoneRequest: Schema.Schema<PatchZoneRequest>;
export interface PatchZoneResponse {
    /** Identifier */
    id: string;
    /** The account the zone belongs to. */
    account: {
        id?: string | null;
        name?: string | null;
    };
    /** The last time proof of ownership was detected and the zone was made active. */
    activatedOn: string | null;
    /** When the zone was created. */
    createdOn: string;
    /** The interval (in seconds) from when development mode expires (positive integer) or last expired (negative integer) for the domain. If development mode has never been enabled, this value is 0. */
    developmentMode: number;
    /** Metadata about the zone. */
    meta: {
        cdnOnly?: boolean | null;
        customCertificateQuota?: number | null;
        dnsOnly?: boolean | null;
        foundationDns?: boolean | null;
        pageRuleQuota?: number | null;
        phishingDetected?: boolean | null;
        step?: number | null;
    };
    /** When the zone was last modified. */
    modifiedOn: string;
    /** The domain name. */
    name: string;
    /** The name servers Cloudflare assigns to a zone. */
    nameServers: string[];
    /** DNS host at the time of switching to Cloudflare. */
    originalDnshost: string | null;
    /** Original name servers before moving to Cloudflare. */
    originalNameServers: string[] | null;
    /** Registrar for the domain at the time of switching to Cloudflare. */
    originalRegistrar: string | null;
    /** The owner of the zone. */
    owner: {
        id?: string | null;
        name?: string | null;
        type?: string | null;
    };
    /** @deprecated Please use the `/zones/{zone_id}/subscription` API to update a zone's plan. Changing this value will create/cancel associated subscriptions. To view available plans for this zone, see [Zon */
    plan: {
        id?: string | null;
        canSubscribe?: boolean | null;
        currency?: string | null;
        externallyManaged?: boolean | null;
        frequency?: string | null;
        isSubscribed?: boolean | null;
        legacyDiscount?: boolean | null;
        legacyId?: string | null;
        name?: string | null;
        price?: number | null;
    };
    /** Allows the customer to use a custom apex. _Tenants Only Configuration_. */
    cnameSuffix?: string | null;
    /** Indicates whether the zone is only using Cloudflare DNS services. A true value means the zone will not receive security or performance benefits. */
    paused?: boolean | null;
    /** @deprecated This has been replaced by Account memberships. */
    permissions?: string[] | null;
    /** The zone status on Cloudflare. */
    status?: "initializing" | "pending" | "active" | "moved" | null;
    /** The root organizational unit that this zone belongs to (such as a tenant or organization). */
    tenant?: {
        id?: string | null;
        name?: string | null;
    } | null;
    /** The immediate parent organizational unit that this zone belongs to (such as under a tenant or sub-organization). */
    tenantUnit?: {
        id?: string | null;
    } | null;
    /** A full zone implies that DNS is hosted with Cloudflare. A partial zone is typically a partner-hosted zone or a CNAME setup. */
    type?: "full" | "partial" | "secondary" | "internal" | null;
    /** An array of domains used for custom name servers. This is only available for Business and Enterprise plans. */
    vanityNameServers?: string[] | null;
    /** Verification key for partial zone setup. */
    verificationKey?: string | null;
}
export declare const PatchZoneResponse: Schema.Schema<PatchZoneResponse>;
export type PatchZoneError = DefaultErrors;
export declare const patchZone: API.OperationMethod<PatchZoneRequest, PatchZoneResponse, PatchZoneError, Credentials | HttpClient.HttpClient>;
export interface DeleteZoneRequest {
    /** Identifier */
    zoneId: string;
}
export declare const DeleteZoneRequest: Schema.Schema<DeleteZoneRequest>;
export interface DeleteZoneResponse {
    /** Identifier */
    id: string;
}
export declare const DeleteZoneResponse: Schema.Schema<DeleteZoneResponse>;
export type DeleteZoneError = DefaultErrors;
export declare const deleteZone: API.OperationMethod<DeleteZoneRequest, DeleteZoneResponse, DeleteZoneError, Credentials | HttpClient.HttpClient>;
//# sourceMappingURL=zones.d.ts.map