import { APIResource } from "../../../../core/resource.mjs";
import { APIPromise } from "../../../../core/api-promise.mjs";
import { RequestOptions } from "../../../../internal/request-options.mjs";
export declare class BaseSettings extends APIResource {
    static readonly _key: readonly ['zones', 'observability', 'tracing', 'settings'];
    /**
     * Update the zone-level Cloudflare Traces settings.
     *
     * @example
     * ```ts
     * const setting =
     *   await client.zones.observability.tracing.settings.update({
     *     zone_id: 'zone_id',
     *   });
     * ```
     */
    update(params: SettingUpdateParams, options?: RequestOptions): APIPromise<SettingUpdateResponse>;
    /**
     * Reset the zone-level Cloudflare Traces settings to their defaults while
     * preserving the sampling rules.
     *
     * @example
     * ```ts
     * const setting =
     *   await client.zones.observability.tracing.settings.delete({
     *     zone_id: 'zone_id',
     *   });
     * ```
     */
    delete(params: SettingDeleteParams, options?: RequestOptions): APIPromise<SettingDeleteResponse>;
    /**
     * Retrieve the zone-level Cloudflare Traces settings.
     *
     * @example
     * ```ts
     * const setting =
     *   await client.zones.observability.tracing.settings.get({
     *     zone_id: 'zone_id',
     *   });
     * ```
     */
    get(params: SettingGetParams, options?: RequestOptions): APIPromise<SettingGetResponse>;
}
export declare class Settings extends BaseSettings {
}
export interface SettingUpdateResponse {
    /**
     * Up to 100 OpenTelemetry destination identifiers that receive traces.
     */
    destinations: Array<string>;
    /**
     * Whether Cloudflare Traces is enabled for the zone.
     */
    enabled: boolean;
    /**
     * Whether trace context is sent externally or across a zone boundary.
     */
    forward_context: boolean;
    /**
     * Whether traces are persisted in Cloudflare.
     */
    persist: boolean;
    /**
     * When inbound trace context may be continued. Authenticated propagation is not
     * supported yet.
     */
    propagation_policy: 'accept' | 'authenticated' | 'reject';
    /**
     * The ratio of requests sampled for tracing, from 0 to 1.
     */
    sampling_ratio: number;
}
export interface SettingDeleteResponse {
    /**
     * Up to 100 OpenTelemetry destination identifiers that receive traces.
     */
    destinations: Array<string>;
    /**
     * Whether Cloudflare Traces is enabled for the zone.
     */
    enabled: boolean;
    /**
     * Whether trace context is sent externally or across a zone boundary.
     */
    forward_context: boolean;
    /**
     * Whether traces are persisted in Cloudflare.
     */
    persist: boolean;
    /**
     * When inbound trace context may be continued. Authenticated propagation is not
     * supported yet.
     */
    propagation_policy: 'accept' | 'authenticated' | 'reject';
    /**
     * The ratio of requests sampled for tracing, from 0 to 1.
     */
    sampling_ratio: number;
}
export interface SettingGetResponse {
    /**
     * Up to 100 OpenTelemetry destination identifiers that receive traces.
     */
    destinations: Array<string>;
    /**
     * Whether Cloudflare Traces is enabled for the zone.
     */
    enabled: boolean;
    /**
     * Whether trace context is sent externally or across a zone boundary.
     */
    forward_context: boolean;
    /**
     * Whether traces are persisted in Cloudflare.
     */
    persist: boolean;
    /**
     * When inbound trace context may be continued. Authenticated propagation is not
     * supported yet.
     */
    propagation_policy: 'accept' | 'authenticated' | 'reject';
    /**
     * The ratio of requests sampled for tracing, from 0 to 1.
     */
    sampling_ratio: number;
}
export interface SettingUpdateParams {
    /**
     * Path param: Specify the zone ID.
     */
    zone_id: string;
    /**
     * Body param: Up to 100 OpenTelemetry destination identifiers that receive traces.
     */
    destinations?: Array<string>;
    /**
     * Body param: Whether Cloudflare Traces is enabled for the zone.
     */
    enabled?: boolean;
    /**
     * Body param: Whether trace context is sent externally or across a zone boundary.
     */
    forward_context?: boolean;
    /**
     * Body param: Whether traces are persisted in Cloudflare.
     */
    persist?: boolean;
    /**
     * Body param: When inbound trace context may be continued. Authenticated
     * propagation is not supported yet.
     */
    propagation_policy?: 'accept' | 'authenticated' | 'reject';
    /**
     * Body param: The ratio of requests sampled for tracing, from 0 to 1.
     */
    sampling_ratio?: number;
}
export interface SettingDeleteParams {
    /**
     * Specify the zone ID.
     */
    zone_id: string;
}
export interface SettingGetParams {
    /**
     * Specify the zone ID.
     */
    zone_id: string;
}
export declare namespace Settings {
    export { type SettingUpdateResponse as SettingUpdateResponse, type SettingDeleteResponse as SettingDeleteResponse, type SettingGetResponse as SettingGetResponse, type SettingUpdateParams as SettingUpdateParams, type SettingDeleteParams as SettingDeleteParams, type SettingGetParams as SettingGetParams, };
}
//# sourceMappingURL=settings.d.mts.map