import { Ports, StarshipConfig } from '@starship-ci/types';
import { Dependency } from './deps';
export interface StarshipContext {
    name?: string;
    config?: string;
    repo?: string;
    repoUrl?: string;
    chart?: string;
    version?: string;
    namespace?: string;
    verbose?: boolean;
    curdir?: string;
    timeout?: string;
    restartThreshold?: number;
}
export declare const defaultStarshipContext: Partial<StarshipContext>;
export interface PodPorts {
    registry?: Ports;
    explorer?: Ports;
    chains?: {
        defaultPorts?: Ports;
        [chainName: string]: Ports;
    };
    relayers?: {
        defaultPorts?: Ports;
        [relayerName: string]: Ports;
    };
}
export interface StarshipClientI {
    ctx: StarshipContext;
    version: string;
    dependencies: Dependency[];
    depsChecked: boolean;
    config: StarshipConfig;
    podPorts: PodPorts;
}
export interface PodStatus {
    phase: string;
    ready: boolean;
    restartCount: number;
    reason?: string;
}
export interface ExecOptions {
    log?: boolean;
    silent?: boolean;
    ignoreError?: boolean;
}
export declare const formatChainID: (input: string) => string;
export declare class StarshipClient implements StarshipClientI {
    ctx: StarshipContext;
    version: string;
    dependencies: Dependency[];
    depsChecked: boolean;
    config: StarshipConfig;
    podPorts: PodPorts;
    private podStatuses;
    constructor(ctx: StarshipContext);
    private exec;
    private log;
    private exit;
    private checkDependencies;
    setup(): void;
    private loadYaml;
    private saveYaml;
    loadConfig(): void;
    saveConfig(): void;
    savePodPorts(filename: string): void;
    loadPodPorts(filename: string): void;
    setConfig(config: StarshipConfig): void;
    setContext(ctx: StarshipContext): void;
    setPodPorts(ports: PodPorts): void;
    private overrideNameAndVersion;
    getArgs(): string[];
    getDeployArgs(): string[];
    test(): void;
    stop(): Promise<void>;
    start(): Promise<void>;
    setupHelm(): void;
    private ensureFileExists;
    deploy(options?: string[]): void;
    debug(): void;
    deleteHelm(): void;
    getPods(): void;
    checkConnection(): void;
    private getPodNames;
    areAllPodsRunning(): boolean;
    private checkPodStatus;
    private setPodStatues;
    waitForPods(): Promise<void>;
    waitForPodsTermination(): Promise<void>;
    private displayPodStatuses;
    checkImagePullFailures(podName: string, exitEarly?: boolean): void;
    private getPodEventsFromDescribe;
    private forwardPort;
    private forwardPortCometmock;
    private forwardPortRelayer;
    private forwardPortService;
    startPortForward(): void;
    private getForwardPids;
    stopPortForward(): void;
    printForwardPids(): void;
    verify(): Promise<void>;
}
