import { ShellRunner } from '../shell-runner.js';
import { HelmDependencyManager } from './helm-dependency-manager.js';
import { type SoloListrTask } from '../../types/index.js';
import { KindDependencyManager } from './kind-dependency-manager.js';
import { KubectlDependencyManager } from './kubectl-dependency-manager.js';
import { PodmanDependencyManager } from './podman-dependency-manager.js';
import { VfkitDependencyManager } from './vfkit-dependency-manager.js';
import { GvproxyDependencyManager } from './gvproxy-dependency-manager.js';
import { CraneDependencyManager } from './crane-dependency-manager.js';
export type DependencyManagerType = HelmDependencyManager | KindDependencyManager | KubectlDependencyManager | PodmanDependencyManager | VfkitDependencyManager | GvproxyDependencyManager | CraneDependencyManager;
export declare class DependencyManager extends ShellRunner {
    private readonly dependancyManagerMap;
    constructor(helmDepManager?: HelmDependencyManager, kindDepManager?: KindDependencyManager, kubectlDependencyManager?: KubectlDependencyManager, podmanDependencyManager?: PodmanDependencyManager, vfkitDependencyManager?: VfkitDependencyManager, gvproxyDependencyManager?: GvproxyDependencyManager, craneDependencyManager?: CraneDependencyManager);
    getDependency(dependency: string): Promise<DependencyManagerType>;
    /**
     * Check if the required dependency is installed or not
     * @param dependency - is the name of the program
     */
    checkDependency(dependency: string): Promise<boolean>;
    skipDependency(dependency: string): Promise<boolean>;
    taskCheckDependencies<T>(dependencies: string[]): SoloListrTask<T>[];
    getExecutable(dependency: string): Promise<string>;
}
