import { z } from "zod";
/**
 * MetricTemplate is the Schema for the MetricTemplates API.
 */
export declare const IMetricTemplateSchema: z.ZodObject<{
    apiVersion: z.ZodLiteral<"flagger.app/v1beta1">;
    kind: z.ZodLiteral<"MetricTemplate">;
    metadata: z.ZodOptional<z.ZodObject<{
        annotations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        creationTimestamp: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        deletionGracePeriodSeconds: z.ZodOptional<z.ZodNumber>;
        deletionTimestamp: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        finalizers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        generateName: z.ZodOptional<z.ZodString>;
        generation: z.ZodOptional<z.ZodNumber>;
        labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        managedFields: z.ZodOptional<z.ZodArray<z.ZodObject<{
            apiVersion: z.ZodOptional<z.ZodString>;
            fieldsType: z.ZodOptional<z.ZodString>;
            fieldsV1: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
            manager: z.ZodOptional<z.ZodString>;
            operation: z.ZodOptional<z.ZodString>;
            subresource: z.ZodOptional<z.ZodString>;
            time: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        }, "strip", z.ZodTypeAny, {
            apiVersion?: string | undefined;
            fieldsType?: string | undefined;
            fieldsV1?: {} | undefined;
            manager?: string | undefined;
            operation?: string | undefined;
            subresource?: string | undefined;
            time?: string | null | undefined;
        }, {
            apiVersion?: string | undefined;
            fieldsType?: string | undefined;
            fieldsV1?: {} | undefined;
            manager?: string | undefined;
            operation?: string | undefined;
            subresource?: string | undefined;
            time?: string | null | undefined;
        }>, "many">>;
        name: z.ZodOptional<z.ZodString>;
        namespace: z.ZodOptional<z.ZodString>;
        ownerReferences: z.ZodOptional<z.ZodArray<z.ZodObject<{
            apiVersion: z.ZodString;
            blockOwnerDeletion: z.ZodOptional<z.ZodBoolean>;
            controller: z.ZodOptional<z.ZodBoolean>;
            kind: z.ZodString;
            name: z.ZodString;
            uid: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            apiVersion: string;
            kind: string;
            name: string;
            uid: string;
            blockOwnerDeletion?: boolean | undefined;
            controller?: boolean | undefined;
        }, {
            apiVersion: string;
            kind: string;
            name: string;
            uid: string;
            blockOwnerDeletion?: boolean | undefined;
            controller?: boolean | undefined;
        }>, "many">>;
        resourceVersion: z.ZodOptional<z.ZodString>;
        selfLink: z.ZodOptional<z.ZodString>;
        uid: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        name?: string | undefined;
        uid?: string | undefined;
        resourceVersion?: string | undefined;
        selfLink?: string | undefined;
        annotations?: Record<string, string> | undefined;
        creationTimestamp?: string | null | undefined;
        deletionGracePeriodSeconds?: number | undefined;
        deletionTimestamp?: string | null | undefined;
        finalizers?: string[] | undefined;
        generateName?: string | undefined;
        generation?: number | undefined;
        labels?: Record<string, string> | undefined;
        managedFields?: {
            apiVersion?: string | undefined;
            fieldsType?: string | undefined;
            fieldsV1?: {} | undefined;
            manager?: string | undefined;
            operation?: string | undefined;
            subresource?: string | undefined;
            time?: string | null | undefined;
        }[] | undefined;
        namespace?: string | undefined;
        ownerReferences?: {
            apiVersion: string;
            kind: string;
            name: string;
            uid: string;
            blockOwnerDeletion?: boolean | undefined;
            controller?: boolean | undefined;
        }[] | undefined;
    }, {
        name?: string | undefined;
        uid?: string | undefined;
        resourceVersion?: string | undefined;
        selfLink?: string | undefined;
        annotations?: Record<string, string> | undefined;
        creationTimestamp?: string | null | undefined;
        deletionGracePeriodSeconds?: number | undefined;
        deletionTimestamp?: string | null | undefined;
        finalizers?: string[] | undefined;
        generateName?: string | undefined;
        generation?: number | undefined;
        labels?: Record<string, string> | undefined;
        managedFields?: {
            apiVersion?: string | undefined;
            fieldsType?: string | undefined;
            fieldsV1?: {} | undefined;
            manager?: string | undefined;
            operation?: string | undefined;
            subresource?: string | undefined;
            time?: string | null | undefined;
        }[] | undefined;
        namespace?: string | undefined;
        ownerReferences?: {
            apiVersion: string;
            kind: string;
            name: string;
            uid: string;
            blockOwnerDeletion?: boolean | undefined;
            controller?: boolean | undefined;
        }[] | undefined;
    }>>;
    /**
     * MetricTemplateSpec defines the desired state of a MetricTemplate.
     */
    spec: z.ZodOptional<z.ZodObject<{
        /**
         * Provider of this metric template
         */
        provider: z.ZodObject<{
            /**
             * Type of this provider
             */
            type: z.ZodUnion<[z.ZodLiteral<"prometheus">, z.ZodLiteral<"influxdb">, z.ZodLiteral<"datadog">, z.ZodLiteral<"stackdriver">, z.ZodLiteral<"cloudwatch">, z.ZodLiteral<"newrelic">, z.ZodLiteral<"graphite">, z.ZodLiteral<"dynatrace">]>;
            /**
             * API address of this provider
             */
            address: z.ZodOptional<z.ZodString>;
            /**
             * Kubernetes secret reference containing the provider credentials
             */
            secretRef: z.ZodOptional<z.ZodObject<{
                /**
                 * Name of the Kubernetes secret
                 */
                name: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                name: string;
            }, {
                name: string;
            }>>;
            /**
             * Region of the provider
             */
            region: z.ZodOptional<z.ZodString>;
            /**
             * Disable SSL certificate validation for the provider address
             */
            insecureSkipVerify: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            type: "prometheus" | "influxdb" | "datadog" | "stackdriver" | "cloudwatch" | "newrelic" | "graphite" | "dynatrace";
            address?: string | undefined;
            secretRef?: {
                name: string;
            } | undefined;
            region?: string | undefined;
            insecureSkipVerify?: boolean | undefined;
        }, {
            type: "prometheus" | "influxdb" | "datadog" | "stackdriver" | "cloudwatch" | "newrelic" | "graphite" | "dynatrace";
            address?: string | undefined;
            secretRef?: {
                name: string;
            } | undefined;
            region?: string | undefined;
            insecureSkipVerify?: boolean | undefined;
        }>;
        /**
         * Query of this metric template
         */
        query: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        provider: {
            type: "prometheus" | "influxdb" | "datadog" | "stackdriver" | "cloudwatch" | "newrelic" | "graphite" | "dynatrace";
            address?: string | undefined;
            secretRef?: {
                name: string;
            } | undefined;
            region?: string | undefined;
            insecureSkipVerify?: boolean | undefined;
        };
        query: string;
    }, {
        provider: {
            type: "prometheus" | "influxdb" | "datadog" | "stackdriver" | "cloudwatch" | "newrelic" | "graphite" | "dynatrace";
            address?: string | undefined;
            secretRef?: {
                name: string;
            } | undefined;
            region?: string | undefined;
            insecureSkipVerify?: boolean | undefined;
        };
        query: string;
    }>>;
}, "strip", z.ZodTypeAny, {
    apiVersion: "flagger.app/v1beta1";
    kind: "MetricTemplate";
    metadata?: {
        name?: string | undefined;
        uid?: string | undefined;
        resourceVersion?: string | undefined;
        selfLink?: string | undefined;
        annotations?: Record<string, string> | undefined;
        creationTimestamp?: string | null | undefined;
        deletionGracePeriodSeconds?: number | undefined;
        deletionTimestamp?: string | null | undefined;
        finalizers?: string[] | undefined;
        generateName?: string | undefined;
        generation?: number | undefined;
        labels?: Record<string, string> | undefined;
        managedFields?: {
            apiVersion?: string | undefined;
            fieldsType?: string | undefined;
            fieldsV1?: {} | undefined;
            manager?: string | undefined;
            operation?: string | undefined;
            subresource?: string | undefined;
            time?: string | null | undefined;
        }[] | undefined;
        namespace?: string | undefined;
        ownerReferences?: {
            apiVersion: string;
            kind: string;
            name: string;
            uid: string;
            blockOwnerDeletion?: boolean | undefined;
            controller?: boolean | undefined;
        }[] | undefined;
    } | undefined;
    spec?: {
        provider: {
            type: "prometheus" | "influxdb" | "datadog" | "stackdriver" | "cloudwatch" | "newrelic" | "graphite" | "dynatrace";
            address?: string | undefined;
            secretRef?: {
                name: string;
            } | undefined;
            region?: string | undefined;
            insecureSkipVerify?: boolean | undefined;
        };
        query: string;
    } | undefined;
}, {
    apiVersion: "flagger.app/v1beta1";
    kind: "MetricTemplate";
    metadata?: {
        name?: string | undefined;
        uid?: string | undefined;
        resourceVersion?: string | undefined;
        selfLink?: string | undefined;
        annotations?: Record<string, string> | undefined;
        creationTimestamp?: string | null | undefined;
        deletionGracePeriodSeconds?: number | undefined;
        deletionTimestamp?: string | null | undefined;
        finalizers?: string[] | undefined;
        generateName?: string | undefined;
        generation?: number | undefined;
        labels?: Record<string, string> | undefined;
        managedFields?: {
            apiVersion?: string | undefined;
            fieldsType?: string | undefined;
            fieldsV1?: {} | undefined;
            manager?: string | undefined;
            operation?: string | undefined;
            subresource?: string | undefined;
            time?: string | null | undefined;
        }[] | undefined;
        namespace?: string | undefined;
        ownerReferences?: {
            apiVersion: string;
            kind: string;
            name: string;
            uid: string;
            blockOwnerDeletion?: boolean | undefined;
            controller?: boolean | undefined;
        }[] | undefined;
    } | undefined;
    spec?: {
        provider: {
            type: "prometheus" | "influxdb" | "datadog" | "stackdriver" | "cloudwatch" | "newrelic" | "graphite" | "dynatrace";
            address?: string | undefined;
            secretRef?: {
                name: string;
            } | undefined;
            region?: string | undefined;
            insecureSkipVerify?: boolean | undefined;
        };
        query: string;
    } | undefined;
}>;
