import { Chain, Resources, StarshipConfig } from '@starship-ci/types';
import { Container, EnvVar, ResourceRequirements, Volume } from 'kubernetesjs';
/**
 * Convert chain.id to name usable by templates
 * Replaces underscores with hyphens and truncates to 63 chars
 */
export declare function getChainName(chainId: string | number): string;
/**
 * Create a default fully qualified app name
 */
export declare function getReleaseName(config: StarshipConfig): string;
/**
 * Common labels for all resources
 */
export declare function getCommonLabels(config: StarshipConfig): Record<string, string>;
/**
 * Selector labels for resources
 */
export declare function getSelectorLabels(config: StarshipConfig): Record<string, string>;
/**
 * Default environment variables for chain containers
 */
export declare function getDefaultEnvVars(chain: Chain): EnvVar[];
/**
 * Chain-specific environment variables
 */
export declare function getChainEnvVars(chain: Chain): EnvVar[];
/**
 * Timeout environment variables
 */
export declare function getTimeoutEnvVars(timeouts: Record<string, any>): EnvVar[];
/**
 * Genesis-specific environment variables
 */
export declare function getGenesisEnvVars(chain: Chain, port: number): EnvVar[];
/**
 * Get resource object based on input
 * Handles both simple cpu/memory format and full k8s resource format
 */
export declare function getResourceObject(resources: Resources): ResourceRequirements;
/**
 * Get node resources with chain-specific overrides
 */
export declare function getNodeResources(chain: Chain, context: StarshipConfig): ResourceRequirements;
/**
 * Standard port mappings for Cosmos chains
 */
export declare function getPortMap(): Record<string, number>;
/**
 * Returns comma-separated list of chain IDs
 */
export declare function getChainIds(chains: Chain[]): string;
/**
 * Returns comma-separated list of chain names
 * If chain name is custom, use chain id instead
 */
export declare function getChainNames(chains: Chain[]): string;
/**
 * Returns comma-separated list of internal RPC addresses
 */
export declare function getChainInternalRpcAddrs(chains: Chain[]): string;
/**
 * Returns comma-separated list of RPC addresses
 */
export declare function getChainRpcAddrs(chains: Chain[], config: StarshipConfig): string;
/**
 * Returns comma-separated list of GRPC addresses
 */
export declare function getChainGrpcAddrs(chains: Chain[], config: StarshipConfig): string;
/**
 * Returns comma-separated list of REST addresses
 */
export declare function getChainRestAddrs(chains: Chain[], config: StarshipConfig): string;
/**
 * Returns comma-separated list of exposer addresses
 */
export declare function getChainExposerAddrs(chains: Chain[], port?: number): string;
/**
 * Generate init container for waiting on chains to be ready
 */
export declare function generateWaitInitContainer(chainIDs: string[], port: number, config?: StarshipConfig): Container;
/**
 * Generate image pull secrets
 */
export declare function generateImagePullSecrets(imagePullSecrets?: Array<{
    name: string;
}>): any;
/**
 * Extract tag from docker image
 */
export declare function extractImageTag(image: string): string;
/**
 * Generate volume mounts for chain containers
 */
export declare function generateChainVolumeMounts(chain: Chain): any[];
/**
 * Generate standard volumes for chain pods
 */
export declare function generateChainVolumes(chain: Chain): Volume[];
export declare function getHostname(chain: Chain): string;
export declare function getChainId(chain: Chain): string;
