import { z } from "zod";
import type { V1Container } from "@kubernetes/client-node";
export declare const ContainerTemplate: z.ZodEnum<["ubuntu", "nginx", "busybox", "alpine", "custom"]>;
export type ContainerTemplateName = z.infer<typeof ContainerTemplate>;
export declare const CustomContainerConfig: z.ZodObject<{
    image: z.ZodString;
    command: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    ports: z.ZodOptional<z.ZodArray<z.ZodObject<{
        containerPort: z.ZodNumber;
        name: z.ZodOptional<z.ZodString>;
        protocol: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        containerPort: number;
        name?: string | undefined;
        protocol?: string | undefined;
    }, {
        containerPort: number;
        name?: string | undefined;
        protocol?: string | undefined;
    }>, "many">>;
    resources: z.ZodOptional<z.ZodObject<{
        limits: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        requests: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        requests?: Record<string, string> | undefined;
        limits?: Record<string, string> | undefined;
    }, {
        requests?: Record<string, string> | undefined;
        limits?: Record<string, string> | undefined;
    }>>;
    env: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        value: z.ZodOptional<z.ZodString>;
        valueFrom: z.ZodOptional<z.ZodAny>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        value?: string | undefined;
        valueFrom?: any;
    }, {
        name: string;
        value?: string | undefined;
        valueFrom?: any;
    }>, "many">>;
    volumeMounts: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        mountPath: z.ZodString;
        readOnly: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        mountPath: string;
        readOnly?: boolean | undefined;
    }, {
        name: string;
        mountPath: string;
        readOnly?: boolean | undefined;
    }>, "many">>;
}, "strip", z.ZodTypeAny, {
    image: string;
    resources?: {
        requests?: Record<string, string> | undefined;
        limits?: Record<string, string> | undefined;
    } | undefined;
    command?: string[] | undefined;
    args?: string[] | undefined;
    ports?: {
        containerPort: number;
        name?: string | undefined;
        protocol?: string | undefined;
    }[] | undefined;
    env?: {
        name: string;
        value?: string | undefined;
        valueFrom?: any;
    }[] | undefined;
    volumeMounts?: {
        name: string;
        mountPath: string;
        readOnly?: boolean | undefined;
    }[] | undefined;
}, {
    image: string;
    resources?: {
        requests?: Record<string, string> | undefined;
        limits?: Record<string, string> | undefined;
    } | undefined;
    command?: string[] | undefined;
    args?: string[] | undefined;
    ports?: {
        containerPort: number;
        name?: string | undefined;
        protocol?: string | undefined;
    }[] | undefined;
    env?: {
        name: string;
        value?: string | undefined;
        valueFrom?: any;
    }[] | undefined;
    volumeMounts?: {
        name: string;
        mountPath: string;
        readOnly?: boolean | undefined;
    }[] | undefined;
}>;
export type CustomContainerConfigType = z.infer<typeof CustomContainerConfig>;
export declare const containerTemplates: Record<string, V1Container>;
