import { type ContainerEnvVar, type ContainerResourceProps, type ContainerResources } from '@appsemble/types';
import { AppsV1Api, CoreV1Api, KubeConfig, type V1EnvVar } from '@kubernetes/client-node';
export declare const maxCPU: number;
export declare const maxMemoryGi: number;
export declare const appIdLabel = "appId";
export declare const resourceDefaults: ContainerResourceProps;
export declare function getKubeConfig(): {
    appsApi: AppsV1Api;
    coreApi: CoreV1Api;
    kubeconfig: KubeConfig;
};
export declare function getContainerNamespace(): string;
export declare function formatServiceName(containerName: string, appName: string, appId: string): string;
export declare function formatSecretName(appName: string, appId: string): string;
export declare function handleKubernetesError(error: unknown): void;
export declare function deleteResource(type: 'deployment' | 'secret' | 'service', namespace: string, name: string): Promise<void>;
/**
 * Accepts a url used to call a companion container.
 *
 * @param url Url for internal communication to a container.
 * @returns the metadata used to form the url.
 * @example input: `containername-appname-1.companion-containers.svc.cluster.local`
 * result: containername-appname-1, 1, appname, appsemble, appsemble-or-namespace
 */
export declare function parseServiceUrl(url: string): {
    deploymentName: string;
    appId: string;
    appName: string;
    namespace: string;
};
export declare function validateContainerResources(resources?: ContainerResources): ContainerResources;
export declare function isWhitelisted(fullImageName: string): Boolean;
export declare function formatEnv(input: ContainerEnvVar[], appName: string, appId: string): V1EnvVar[];
