import type { io } from "./generated"; import type { IngressClasses } from "./helpers"; import type { ObjectMeta } from "./kubernetes"; type EnvValue = string | number | { secretName: string; key: string; } | { fieldPath: string; }; interface ProbeConfig { period?: number; initialDelay?: number; } export interface StatelessAppSpec { replicas?: number | [number, number] | null; cpuUtilizationToScale?: number; image: string; imagePullPolicy?: io.k8s.api.core.v1.Container["imagePullPolicy"]; command?: string[]; args?: string[]; envs?: Record; forwardEnvs?: string[]; secretEnvs?: string[]; annotations?: Record; labels?: Record; topologySpreadConstraints?: io.k8s.api.core.v1.TopologySpreadConstraint[]; cpu: { request: string | number; limit: string | number; }; memory: { request: string | number; limit: string | number; }; serviceAccountName?: string; ports?: Array<({ type: "http"; ingressClass?: IngressClasses; ingressAnnotations?: Record; publicUrl?: string | string[]; tlsCert?: string; timeout?: number; maxBodySize?: string; limitRequestsPerSecond?: number; endpoints?: Array<{ publicUrl?: string; tlsCert?: string; maxBodySize?: string; limitRequestsPerSecond?: number; }>; } | { type: "tcp"; } | { type: "udp"; }) & { name?: string; port: number; containerPort?: number; serviceType?: "ExternalName" | "ClusterIP" | "NodePort" | "LoadBalancer"; }>; check?: ({ port: number; httpGetPath?: string; host?: string; } | { command: string[]; }) & ProbeConfig & { liveness?: ProbeConfig; readiness?: ProbeConfig; }; volumes?: Array<{ type: "configMap" | "secret"; name: string; optional?: boolean; mountPath: string; defaultMode?: number; items?: Array<{ key: string; path: string; }>; } & io.k8s.api.core.v1.VolumeMount>; crons?: Array<{ name: string; schedule: string; timeoutSeconds?: number; args: string[]; command: string[]; envs?: Record; forwardEnvs?: string[]; secretEnvs?: string[]; cpu?: { request?: string | number; limit?: string | number; }; memory?: { request?: string | number; limit?: string | number; }; }>; imagePullSecrets?: string[]; terminationGracePeriodSeconds?: number; nodeAffinityMode?: "on-demand" | "spot"; /** * @deprecated does nothing! kept only for compatibility purposes */ disablePreemptibility?: boolean; minAvailable?: number; affinity?: io.k8s.api.core.v1.Affinity; nodeSelector?: Record; tolerations?: io.k8s.api.core.v1.Toleration[]; } export declare class StatelessApp { private metadata; private spec; constructor(metadata: ObjectMeta, spec: StatelessAppSpec); get yaml(): string; } export {};