import { z } from "zod";
/**
 * ClusterTriggerAuthentication defines how a trigger can authenticate globally
 */
export declare const IClusterTriggerAuthenticationSchema: z.ZodObject<{
    /**
     * APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
     */
    apiVersion: z.ZodLiteral<"keda.sh/v1alpha1">;
    /**
     * Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
     */
    kind: z.ZodLiteral<"ClusterTriggerAuthentication">;
    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;
    }>>;
    /**
     * TriggerAuthenticationSpec defines the various ways to authenticate
     */
    spec: z.ZodObject<{
        /**
         * AzureKeyVault is used to authenticate using Azure Key Vault
         */
        azureKeyVault: z.ZodOptional<z.ZodObject<{
            cloud: z.ZodOptional<z.ZodObject<{
                activeDirectoryEndpoint: z.ZodOptional<z.ZodString>;
                keyVaultResourceURL: z.ZodOptional<z.ZodString>;
                type: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: string;
                activeDirectoryEndpoint?: string | undefined;
                keyVaultResourceURL?: string | undefined;
            }, {
                type: string;
                activeDirectoryEndpoint?: string | undefined;
                keyVaultResourceURL?: string | undefined;
            }>>;
            credentials: z.ZodOptional<z.ZodObject<{
                clientId: z.ZodString;
                clientSecret: z.ZodObject<{
                    valueFrom: z.ZodObject<{
                        secretKeyRef: z.ZodObject<{
                            key: z.ZodString;
                            name: z.ZodString;
                        }, "strip", z.ZodTypeAny, {
                            key: string;
                            name: string;
                        }, {
                            key: string;
                            name: string;
                        }>;
                    }, "strip", z.ZodTypeAny, {
                        secretKeyRef: {
                            key: string;
                            name: string;
                        };
                    }, {
                        secretKeyRef: {
                            key: string;
                            name: string;
                        };
                    }>;
                }, "strip", z.ZodTypeAny, {
                    valueFrom: {
                        secretKeyRef: {
                            key: string;
                            name: string;
                        };
                    };
                }, {
                    valueFrom: {
                        secretKeyRef: {
                            key: string;
                            name: string;
                        };
                    };
                }>;
                tenantId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                clientId: string;
                clientSecret: {
                    valueFrom: {
                        secretKeyRef: {
                            key: string;
                            name: string;
                        };
                    };
                };
                tenantId: string;
            }, {
                clientId: string;
                clientSecret: {
                    valueFrom: {
                        secretKeyRef: {
                            key: string;
                            name: string;
                        };
                    };
                };
                tenantId: string;
            }>>;
            /**
             * AuthPodIdentity allows users to select the platform native identity mechanism
             */
            podIdentity: z.ZodOptional<z.ZodObject<{
                identityId: z.ZodOptional<z.ZodString>;
                /**
                 * PodIdentityProvider contains the list of providers
                 */
                provider: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                provider: string;
                identityId?: string | undefined;
            }, {
                provider: string;
                identityId?: string | undefined;
            }>>;
            secrets: z.ZodArray<z.ZodObject<{
                name: z.ZodString;
                parameter: z.ZodString;
                version: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                name: string;
                parameter: string;
                version?: string | undefined;
            }, {
                name: string;
                parameter: string;
                version?: string | undefined;
            }>, "many">;
            vaultUri: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            secrets: {
                name: string;
                parameter: string;
                version?: string | undefined;
            }[];
            vaultUri: string;
            cloud?: {
                type: string;
                activeDirectoryEndpoint?: string | undefined;
                keyVaultResourceURL?: string | undefined;
            } | undefined;
            credentials?: {
                clientId: string;
                clientSecret: {
                    valueFrom: {
                        secretKeyRef: {
                            key: string;
                            name: string;
                        };
                    };
                };
                tenantId: string;
            } | undefined;
            podIdentity?: {
                provider: string;
                identityId?: string | undefined;
            } | undefined;
        }, {
            secrets: {
                name: string;
                parameter: string;
                version?: string | undefined;
            }[];
            vaultUri: string;
            cloud?: {
                type: string;
                activeDirectoryEndpoint?: string | undefined;
                keyVaultResourceURL?: string | undefined;
            } | undefined;
            credentials?: {
                clientId: string;
                clientSecret: {
                    valueFrom: {
                        secretKeyRef: {
                            key: string;
                            name: string;
                        };
                    };
                };
                tenantId: string;
            } | undefined;
            podIdentity?: {
                provider: string;
                identityId?: string | undefined;
            } | undefined;
        }>>;
        env: z.ZodOptional<z.ZodArray<z.ZodObject<{
            containerName: z.ZodOptional<z.ZodString>;
            name: z.ZodString;
            parameter: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            name: string;
            parameter: string;
            containerName?: string | undefined;
        }, {
            name: string;
            parameter: string;
            containerName?: string | undefined;
        }>, "many">>;
        /**
         * HashiCorpVault is used to authenticate using Hashicorp Vault
         */
        hashiCorpVault: z.ZodOptional<z.ZodObject<{
            address: z.ZodString;
            /**
             * VaultAuthentication contains the list of Hashicorp Vault authentication methods
             */
            authentication: z.ZodString;
            /**
             * Credential defines the Hashicorp Vault credentials depending on the authentication method
             */
            credential: z.ZodOptional<z.ZodObject<{
                serviceAccount: z.ZodOptional<z.ZodString>;
                token: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                serviceAccount?: string | undefined;
                token?: string | undefined;
            }, {
                serviceAccount?: string | undefined;
                token?: string | undefined;
            }>>;
            mount: z.ZodOptional<z.ZodString>;
            namespace: z.ZodOptional<z.ZodString>;
            role: z.ZodOptional<z.ZodString>;
            secrets: z.ZodArray<z.ZodObject<{
                key: z.ZodString;
                parameter: z.ZodString;
                path: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                key: string;
                parameter: string;
                path: string;
            }, {
                key: string;
                parameter: string;
                path: string;
            }>, "many">;
        }, "strip", z.ZodTypeAny, {
            secrets: {
                key: string;
                parameter: string;
                path: string;
            }[];
            address: string;
            authentication: string;
            credential?: {
                serviceAccount?: string | undefined;
                token?: string | undefined;
            } | undefined;
            mount?: string | undefined;
            namespace?: string | undefined;
            role?: string | undefined;
        }, {
            secrets: {
                key: string;
                parameter: string;
                path: string;
            }[];
            address: string;
            authentication: string;
            credential?: {
                serviceAccount?: string | undefined;
                token?: string | undefined;
            } | undefined;
            mount?: string | undefined;
            namespace?: string | undefined;
            role?: string | undefined;
        }>>;
        /**
         * AuthPodIdentity allows users to select the platform native identity mechanism
         */
        podIdentity: z.ZodOptional<z.ZodObject<{
            identityId: z.ZodOptional<z.ZodString>;
            /**
             * PodIdentityProvider contains the list of providers
             */
            provider: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            provider: string;
            identityId?: string | undefined;
        }, {
            provider: string;
            identityId?: string | undefined;
        }>>;
        secretTargetRef: z.ZodOptional<z.ZodArray<z.ZodObject<{
            key: z.ZodString;
            name: z.ZodString;
            parameter: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            key: string;
            name: string;
            parameter: string;
        }, {
            key: string;
            name: string;
            parameter: string;
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        podIdentity?: {
            provider: string;
            identityId?: string | undefined;
        } | undefined;
        azureKeyVault?: {
            secrets: {
                name: string;
                parameter: string;
                version?: string | undefined;
            }[];
            vaultUri: string;
            cloud?: {
                type: string;
                activeDirectoryEndpoint?: string | undefined;
                keyVaultResourceURL?: string | undefined;
            } | undefined;
            credentials?: {
                clientId: string;
                clientSecret: {
                    valueFrom: {
                        secretKeyRef: {
                            key: string;
                            name: string;
                        };
                    };
                };
                tenantId: string;
            } | undefined;
            podIdentity?: {
                provider: string;
                identityId?: string | undefined;
            } | undefined;
        } | undefined;
        env?: {
            name: string;
            parameter: string;
            containerName?: string | undefined;
        }[] | undefined;
        hashiCorpVault?: {
            secrets: {
                key: string;
                parameter: string;
                path: string;
            }[];
            address: string;
            authentication: string;
            credential?: {
                serviceAccount?: string | undefined;
                token?: string | undefined;
            } | undefined;
            mount?: string | undefined;
            namespace?: string | undefined;
            role?: string | undefined;
        } | undefined;
        secretTargetRef?: {
            key: string;
            name: string;
            parameter: string;
        }[] | undefined;
    }, {
        podIdentity?: {
            provider: string;
            identityId?: string | undefined;
        } | undefined;
        azureKeyVault?: {
            secrets: {
                name: string;
                parameter: string;
                version?: string | undefined;
            }[];
            vaultUri: string;
            cloud?: {
                type: string;
                activeDirectoryEndpoint?: string | undefined;
                keyVaultResourceURL?: string | undefined;
            } | undefined;
            credentials?: {
                clientId: string;
                clientSecret: {
                    valueFrom: {
                        secretKeyRef: {
                            key: string;
                            name: string;
                        };
                    };
                };
                tenantId: string;
            } | undefined;
            podIdentity?: {
                provider: string;
                identityId?: string | undefined;
            } | undefined;
        } | undefined;
        env?: {
            name: string;
            parameter: string;
            containerName?: string | undefined;
        }[] | undefined;
        hashiCorpVault?: {
            secrets: {
                key: string;
                parameter: string;
                path: string;
            }[];
            address: string;
            authentication: string;
            credential?: {
                serviceAccount?: string | undefined;
                token?: string | undefined;
            } | undefined;
            mount?: string | undefined;
            namespace?: string | undefined;
            role?: string | undefined;
        } | undefined;
        secretTargetRef?: {
            key: string;
            name: string;
            parameter: string;
        }[] | undefined;
    }>;
}, "strip", z.ZodTypeAny, {
    spec: {
        podIdentity?: {
            provider: string;
            identityId?: string | undefined;
        } | undefined;
        azureKeyVault?: {
            secrets: {
                name: string;
                parameter: string;
                version?: string | undefined;
            }[];
            vaultUri: string;
            cloud?: {
                type: string;
                activeDirectoryEndpoint?: string | undefined;
                keyVaultResourceURL?: string | undefined;
            } | undefined;
            credentials?: {
                clientId: string;
                clientSecret: {
                    valueFrom: {
                        secretKeyRef: {
                            key: string;
                            name: string;
                        };
                    };
                };
                tenantId: string;
            } | undefined;
            podIdentity?: {
                provider: string;
                identityId?: string | undefined;
            } | undefined;
        } | undefined;
        env?: {
            name: string;
            parameter: string;
            containerName?: string | undefined;
        }[] | undefined;
        hashiCorpVault?: {
            secrets: {
                key: string;
                parameter: string;
                path: string;
            }[];
            address: string;
            authentication: string;
            credential?: {
                serviceAccount?: string | undefined;
                token?: string | undefined;
            } | undefined;
            mount?: string | undefined;
            namespace?: string | undefined;
            role?: string | undefined;
        } | undefined;
        secretTargetRef?: {
            key: string;
            name: string;
            parameter: string;
        }[] | undefined;
    };
    apiVersion: "keda.sh/v1alpha1";
    kind: "ClusterTriggerAuthentication";
    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: {
        podIdentity?: {
            provider: string;
            identityId?: string | undefined;
        } | undefined;
        azureKeyVault?: {
            secrets: {
                name: string;
                parameter: string;
                version?: string | undefined;
            }[];
            vaultUri: string;
            cloud?: {
                type: string;
                activeDirectoryEndpoint?: string | undefined;
                keyVaultResourceURL?: string | undefined;
            } | undefined;
            credentials?: {
                clientId: string;
                clientSecret: {
                    valueFrom: {
                        secretKeyRef: {
                            key: string;
                            name: string;
                        };
                    };
                };
                tenantId: string;
            } | undefined;
            podIdentity?: {
                provider: string;
                identityId?: string | undefined;
            } | undefined;
        } | undefined;
        env?: {
            name: string;
            parameter: string;
            containerName?: string | undefined;
        }[] | undefined;
        hashiCorpVault?: {
            secrets: {
                key: string;
                parameter: string;
                path: string;
            }[];
            address: string;
            authentication: string;
            credential?: {
                serviceAccount?: string | undefined;
                token?: string | undefined;
            } | undefined;
            mount?: string | undefined;
            namespace?: string | undefined;
            role?: string | undefined;
        } | undefined;
        secretTargetRef?: {
            key: string;
            name: string;
            parameter: string;
        }[] | undefined;
    };
    apiVersion: "keda.sh/v1alpha1";
    kind: "ClusterTriggerAuthentication";
    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;
}>;
