import type { FromSchema } from 'json-schema-to-ts';
export declare const featureEnvironmentSafeguardSchema: {
    readonly $id: "#/components/schemas/featureEnvironmentSafeguardSchema";
    readonly type: "object";
    readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
    readonly description: "A safeguard configuration for a feature environment.";
    readonly additionalProperties: false;
    readonly properties: {
        readonly id: {
            readonly type: "string";
            readonly description: "The unique ULID identifier for this safeguard";
            readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
        };
        readonly action: {
            readonly type: "object";
            readonly required: readonly ["type", "featureName", "environment", "project"];
            readonly additionalProperties: false;
            readonly description: "Disable a feature in an environment when triggered.";
            readonly properties: {
                readonly type: {
                    readonly type: "string";
                    readonly description: "The type of action to perform.";
                    readonly example: "disableFeatureEnvironment";
                };
                readonly featureName: {
                    readonly type: "string";
                    readonly description: "The feature flag name this safeguard applies to.";
                };
                readonly environment: {
                    readonly type: "string";
                    readonly description: "The environment this safeguard applies to.";
                };
                readonly project: {
                    readonly type: "string";
                    readonly description: "The project this safeguard applies to.";
                };
            };
        };
        readonly triggerCondition: {
            readonly $ref: "#/components/schemas/safeguardTriggerConditionSchema";
            readonly description: "The condition that triggers the safeguard.";
        };
        readonly impactMetric: {
            readonly type: "object";
            readonly required: readonly ["id", "metricName", "timeRange", "aggregationMode", "labelSelectors"];
            readonly additionalProperties: false;
            readonly properties: {
                readonly metricName: {
                    readonly type: "string";
                    readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
                    readonly example: "unleash_counter_feature_toggle_usage_total";
                };
                readonly timeRange: {
                    readonly type: "string";
                    readonly enum: readonly ["hour", "day", "week", "month"];
                    readonly description: "The time range for the metric data.";
                    readonly example: "day";
                };
                readonly aggregationMode: {
                    readonly type: "string";
                    readonly description: "The aggregation mode for the metric data.";
                    readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
                    readonly example: "rps";
                };
                readonly labelSelectors: {
                    readonly type: "object";
                    readonly additionalProperties: {
                        readonly type: "array";
                        readonly items: {
                            readonly type: "string";
                        };
                    };
                    readonly description: "The selected labels and their values for filtering the metric data.";
                    readonly example: {
                        readonly environment: readonly ["development"];
                        readonly project: readonly ["default"];
                    };
                };
                readonly source: {
                    readonly type: "string";
                    readonly enum: readonly ["internal", "external"];
                    readonly description: "The Prometheus data source for this metric. Internal is the Unleash-managed Prometheus, external is a customer-provided Prometheus instance. Defaults to internal if not specified.";
                    readonly example: "internal";
                };
                readonly id: {
                    readonly type: "string";
                    readonly description: "The unique identifier for this impact metric";
                    readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
                };
            };
            readonly description: "The metric configuration used to evaluate the safeguard condition.";
        };
    };
    readonly components: {
        readonly schemas: {
            readonly metricQuerySchema: {
                readonly $id: "#/components/schemas/metricQuerySchema";
                readonly type: "object";
                readonly required: readonly ["metricName", "timeRange", "aggregationMode", "labelSelectors"];
                readonly description: "Common metric query configuration for selecting and filtering metric data.";
                readonly additionalProperties: false;
                readonly properties: {
                    readonly metricName: {
                        readonly type: "string";
                        readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
                        readonly example: "unleash_counter_feature_toggle_usage_total";
                    };
                    readonly timeRange: {
                        readonly type: "string";
                        readonly enum: readonly ["hour", "day", "week", "month"];
                        readonly description: "The time range for the metric data.";
                        readonly example: "day";
                    };
                    readonly aggregationMode: {
                        readonly type: "string";
                        readonly description: "The aggregation mode for the metric data.";
                        readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
                        readonly example: "rps";
                    };
                    readonly labelSelectors: {
                        readonly type: "object";
                        readonly additionalProperties: {
                            readonly type: "array";
                            readonly items: {
                                readonly type: "string";
                            };
                        };
                        readonly description: "The selected labels and their values for filtering the metric data.";
                        readonly example: {
                            readonly environment: readonly ["development"];
                            readonly project: readonly ["default"];
                        };
                    };
                    readonly source: {
                        readonly type: "string";
                        readonly enum: readonly ["internal", "external"];
                        readonly description: "The Prometheus data source for this metric. Internal is the Unleash-managed Prometheus, external is a customer-provided Prometheus instance. Defaults to internal if not specified.";
                        readonly example: "internal";
                    };
                };
                readonly components: {};
            };
            readonly safeguardTriggerConditionSchema: {
                readonly $id: "#/components/schemas/safeguardTriggerConditionSchema";
                readonly type: "object";
                readonly required: readonly ["operator", "threshold"];
                readonly additionalProperties: false;
                readonly description: "The condition that triggers the safeguard.";
                readonly properties: {
                    readonly operator: {
                        readonly type: "string";
                        readonly enum: readonly [">", "<"];
                        readonly description: "The comparison operator for the threshold check.";
                        readonly example: ">";
                    };
                    readonly threshold: {
                        readonly type: "number";
                        readonly description: "The threshold value to compare against.";
                        readonly example: 100;
                    };
                };
                readonly components: {};
            };
        };
    };
};
export type FeatureEnvironmentSafeguardSchema = FromSchema<typeof featureEnvironmentSafeguardSchema>;
//# sourceMappingURL=feature-environment-safeguard-schema.d.ts.map